Segmenting objects in digital images utilizing a multi-object segmentation model framework

ABSTRACT

The present disclosure relates to a multi-model object segmentation system that provides a multi-model object segmentation framework for automatically segmenting objects in digital images. In one or more implementations, the multi-model object segmentation system utilizes different types of object segmentation models to determine a comprehensive set of object masks for a digital image. In various implementations, the multi-model object segmentation system further improves and refines object masks in the set of object masks utilizing specialized object segmentation models, which results in more improved accuracy and precision with respect to object selection within the digital image. Further, in some implementations, the multi-model object segmentation system generates object masks for portions of a digital image otherwise not captured by various object segmentation models.

BACKGROUND

Recent years have witnessed a significant increase in digital image editing. Indeed, advances in both hardware and software have increased the ability of individuals to capture, create, and edit digital images. For instance, the hardware on most modern computing devices (e.g., smartphones, tablets, servers, desktops, and laptops) enables both professionals and hobbyists to perform a variety of digital image editing operations. Similarly, improvements in software enable individuals to modify, filter, or otherwise edit digital images across a variety of computing devices. Examples of editing digital images include selecting an object and manipulating the object.

Notwithstanding these improvements, conventional systems continue to suffer from several problems with regard to the accuracy, efficiency, and flexibility of computing device operations, and in particular, with respect to object segmentation. For example, many conventional systems have limited functionality in the types of objects they segment in a digital image. As a result, these conventional systems are impeded from automatically segmenting some of the objects that may be included in a digital image. Instead, a user may need to attempt to manually select such objects, which leads to imprecise and unsatisfactory results as well as computational inefficiencies.

Accordingly, these along with additional problems and issues exist in current solutions with respect to the technical field of digital image editing.

BRIEF SUMMARY

Implementations of the present disclosure provide benefits and/or solve one or more of the foregoing or other problems in the art with systems, non-transitory computer-readable media, and methods that accurately and flexibly utilize a multi-model object segmentation framework to accurately and automatically segment all objects in digital images. For instance, the disclosed systems generate a comprehensive set of accurate and refined object masks for objects in a digital image utilizing a combination of different object segmentation models within the multi-model object segmentation framework. For example, the disclosed systems utilize multiple object segmentation machine-learning models to initially detect objects in the digital image, where objects detected by more than one model are combined for a more accurate selection of the objects. In addition, the disclosed systems utilize specialized object segmentation machine-learning models to refine the initially detected objects for improved object segmentation. Further the disclosed systems detect clusters of non-segmented pixels for potential segmentation. In this manner, the disclosed systems accurately and automatically segments an entire digital image. Once segmented, the disclosed systems return one or more of the segmented objects (or sub-objects) in response to a selection request.

The following description sets forth additional features and advantages of one or more implementations of the disclosed systems, computer-readable media, and methods.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description provides one or more implementations with additional specificity and detail through the use of the accompanying drawings, as briefly described below.

FIG. 1 illustrates a schematic diagram of a system environment in which a multi-model object segmentation system operates in accordance with one or more implementations.

FIG. 2 illustrates an overview diagram of segmenting objects in a digital image for automatic selection in accordance with one or more implementations.

FIG. 3 illustrates a schematic diagram of a multi-model object segmentation framework for automatically segmenting objects in digital images in accordance with one or more implementations.

FIGS. 4A-4B illustrate block diagrams of utilizing multiple object segmentation models to generate multiple object mask sets for a digital image in accordance with one or more implementations.

FIG. 5 illustrates a block diagram of generating a combined object mask set for a digital image based on merging overlapping object masks in accordance with one or more implementations.

FIG. 6 illustrates a block diagram of utilizing one or more specialist object segmentation models to refine object masks in accordance with one or more implementations.

FIG. 7 illustrates a block diagram of utilizing one or more partial-object segmentation models to generate improved object masks for a digital image in accordance with one or more implementations.

FIG. 8 illustrates a block diagram of generating unclassified object masks for a digital image in accordance with one or more implementations.

FIG. 9 illustrates a block diagram of verifying the consistency of an object mask set for a digital image in accordance with one or more implementations.

FIGS. 10A-10D illustrate a graphical user interface of automatically selecting an object or partial object in accordance with one or more implementations.

FIG. 11 illustrates a schematic diagram of the multi-model object segmentation system in accordance with one or more implementations.

FIG. 12 illustrates a flowchart of a series of acts of utilizing multiple object segmentation models to automatically select objects in digital images in accordance with one or more implementations.

FIG. 13 illustrates a block diagram of an example computing device for implementing one or more implementations of the present disclosure.

DETAILED DESCRIPTION

This disclosure describes one or more implementations of a multi-model object segmentation system that utilizes a multi-model object segmentation framework to automatically segment objects in digital images. In one or more implementations, the multi-model object segmentation system utilizes different types of general object segmentation models to determine a set of object masks for a digital image. As another example, in a number of implementations, the multi-model object segmentation system improves and refines object masks by combining object mask and/or utilizing specialized object segmentation models. In some implementations, the multi-model object segmentation system generates object masks for objects and portions of a digital image otherwise typically not captured by the various object segmentation models alone.

To illustrate, in some implementations, the multi-model object segmentation system generates multiple sets of object masks for a digital image utilizing multiple object segmentation machine-learning models. In these implementations, the multi-model object segmentation system identifies any overlapping object masks in the digital image between the object segmentation machine-learning models. For each detected overlap, the multi-model object segmentation system merges the overlapping object masks into a single object mask. Further, in these implementations, the multi-model object segmentation system generates a combined or modified set of object masks for the digital image that includes merged object masks as well as any non-overlapping object masks from each of the object segmentation machine-learning models. Then, in response to detecting a selection request of a target object in the digital image, the multi-model object segmentation system provides an object mask of the target object from the combined set of object masks.

Indeed, the multi-model object segmentation system utilizes a multi-model object segmentation framework to generate a combined set of object masks that includes accurate and refined object masks such that all objects and regions in an image—including unknown objects and unclassified pixel regions—are segmented. In various implementations, the multi-model object segmentation framework includes multiple general object segmentation machine-learning models to segment as many objects as possible in a digital image, where objects segmented by more than one object segmentation machine-learning model are merged in a combined object mask set. Additionally, to ensure that the entire digital image is segmented, in various implementations, the multi-model object segmentation system utilizes an unknown pixel region mask generator to generate new object masks for previously unsegmented regions within the digital image, which are added to the combined object mask set.

As mentioned above, in various implementations, the multi-model object segmentation system generates multiple sets of object masks for a digital image utilizing multiple object segmentation machine-learning models. In one or more implementations, the multi-model object segmentation system utilizes a quality-based object segmentation machine-learning model to classify objects in a digital image and generate a first object mask set. For example, this object segmentation machine-learning model detects and labels a first number of objects belonging to known objects classes and generates object masks for the detected objects. In addition, the multi-model object segmentation system utilizes a quantity-based object segmentation machine-learning model to segment a second number of semantic objects in the digital image, such as all foreground and background objects, to generate a second object mask set. Often, the number of objects segmented by the two object segmentation machine-learning models differ.

In various implementations, the multi-model object segmentation system combines the first object mask set and the second object mask set to generate a combined object mask set (or merged object mask set). In some implementations, however, there is an overlap of segmented objects between the two object mask sets. Accordingly, in these implementations, for an object segmented in multiple object mask sets, the multi-model object segmentation system merges the overlapping object masks from each set into a single combined object mask by either creating a new object mask or modified mask of the overlapping object masks. In one or more implementations, the multi-model object segmentation system merges the two object masks when a threshold number of overlapping pixels satisfies a pixel overlap threshold. In particular, the multi-model object segmentation system combines the pixels from each of the overlapping object masks into a single combined object mask.

Further, in one or more implementations, the multi-model object segmentation system utilizes the multi-model object segmentation framework for automatically segmenting objects in digital images to further refine the combined set of object masks for the digital image. To illustrate, for one or more classified objects in the digital image, the multi-model object segmentation system determines that the object type matches a specialist object segmentation machine-learning model. In these implementations, the multi-model object segmentation system utilizes the specialist object segmentation machine-learning model to generate a more accurate and refined object mask for the object to be included in the combined object mask set, as further described below.

In some implementations, the multi-model object segmentation system utilizes a partial object segmentation machine-learning model in connection with a segmented object to segment multiple partial objects (e.g., object subparts). For example, in various implementations, the multi-model object segmentation system determines that a classified object type corresponds with a partial-object segmentation machine-learning model, such as a body part or facial segmentation machine-learning model. Here, the multi-model object segmentation system utilizes the matched partial-object segmentation machine-learning model to generate several additional partial-object masks for the object, which the multi-model object segmentation system adds to the combined object mask set in connection with the encompassing object mask.

As mentioned above, in various implementations, the multi-model object segmentation system includes an unknown pixel region mask generator. In some implementations, the unknown pixel region mask generator creates unlabeled object masks for clusters of pixels in the digital image that were not segmented by the other object segmentation machine-learning models in the multi-model object segmentation framework. Indeed, in one or more implementations, for adjoining pixels in the digital image that satisfy a minimum threshold, the multi-model object segmentation system utilizes the unknown pixel region mask generator to generate a new object mask for the pixel cluster, which is added to the combined object mask set. In this manner, in one or more embodiments, the multi-model object segmentation system ensures that the entire image is segmented.

Moreover, in various implementations, the multi-model object segmentation system verifies the consistency of the combined object mask set. For example, in one or more implementations, the multi-model object segmentation system verifies that multiple object masks in the same hierarchy of the combined object mask set do not include the same pixel. If a pixel is detected as belonging to multiple object masks, the multi-model object segmentation system utilizes one or more approaches to assign the pixel to a single object mask.

Further, in various implementations, the multi-model object segmentation system provides a graphical user interface for easy and intuitive selection of objects within a digital image. For example, in some implementations, a user selects a target object/region in a digital image. In response, the multi-model object segmentation system automatically selects the target object by providing an object mask corresponding to the region of the digital image selected (click on, tapped, hovered over, etc.). Indeed, because the multi-model object segmentation system has created accurate object masks for each object in the combined object mask set, the user is able to request the selection of any object in the digital image and the multi-model object segmentation system quickly and accurately selects the desired object.

As mentioned above, conventional object segmentation systems face a number of problems with regard to accuracy, efficiency, and flexibility of computing device operations, particularly with respect to segmenting and selecting objects in digital images. As a first example, many conventional systems are inaccurate. For instance, as mentioned above, several conventional systems fail to accurately segment objects in digital images. For example, many conventional systems do not segment objects that are background objects or conceptual objects (e.g., concept-based objects). Indeed, any pixels in a digital image that do not belong to a known classification are often left unlabeled and unsegmented, which results in conventional systems not being able to select some objects/regions.

For example, many conventional systems are trained to detect and segment a small set of objects in digital images, while excluding other objects. As a result, when a user desires a selection of a particular instance of an object, conventional object segmentation systems are unable to accurately segment the desired object. Moreover, in some cases, conventional object segmentation systems misclassify and/or fail to accurately identify known objects.

Also, some conventional systems are inaccurate because they provide imprecise results. For instance, while a few conventional object segmentation systems select individual masks of an object, the boundaries of these masks are rough and imprecise. Indeed, these conventional systems often produce object masks that include additional portions that are not part of the object (e.g., artifacts) or do not include the entire object. As a result, a user must manually correct the segmentation and/or manually segment the desired object.

As another problem with inaccuracy, many conventional systems do not facilitate segmentation and selection of object parts. In many conventional systems to segment a partial object, the object part typically must belong to a predefined classification of object parts, which is often limited to a specific object types. Thus, unless a partial object within a digital image matches one of the predefined object part classifications, the conventional systems will often fail to recognize the partial object. Further, when a conventional system is trained to detect object parts associated with a particular object type, the conventional system is more likely to miss detecting other types of objects in a digital image altogether.

Additionally, conventional systems are inflexible. As noted above, conventional systems are often rigidly limited to only recognizing objects that appeared during training. More particularly, many conventional systems utilize neural networks that identify and classify a limited predetermined set of objects in digital images. As a result, these conventional systems are restricted from recognizing objects in the digital images outside of the predetermined set. Similarly, most of these conventional systems are unable to detect and/or classify non-objects, such as the image backgrounds or other unquantifiable objects.

As another example of inefficiency, many conventional systems do not provide direct tools for automatic object segmentation of any object (or a non-object) in a digital image. Instead, individuals are left to use generic image editing tools and are unable to satisfactorily select a target object (or partial object). These tools are often imprecise as well as difficult to use. As a result, significant time and user interactions result in the wasting of substantial computing resources in detecting, segmenting, displaying, selecting, and correcting object selections in digital images.

As previously mentioned, the multi-model object segmentation system provides numerous advantages, benefits, and practical applications over conventional systems. As noted above, in many implementations, the multi-model object segmentation system improves accuracy, flexibility, and efficiency utilizing a multi-model object segmentation framework that accurately and automatically segments objects in digital images. To illustrate, regarding improvements to accuracy, in various implementations, the multi-model object segmentation system utilizes multiple object segmentation machine-learning models to segment objects in a digital image that a single object segmentation model may inaccurately miss. Further, by merging the object masks of objects segmented in both models, the multi-model object segmentation system is able to improve the accuracy of the object mask of the segmented objects. Thus, in many implementations, the multi-model object segmentation system creates a highly-accurate combined set of object masks for objects within digital images.

Additionally, the multi-model object segmentation system often utilizes additional specialized object segmentation machine-learning models to refined object masks. For example, in implementations where an object mask in the combined set of object masks corresponds to a specialist or partial-object segmentation machine-learning model, the multi-model object segmentation system utilizes the corresponding specialized object segmentation machine-learning model to generate a more accurate and improved object mask. Moreover, besides facilitating the accurate selection of objects in digital images, the multi-model object segmentation system enables the selection of non-objects that are not traditionally detected/segmented by conventional object segmentation models.

In one or more implementations, the multi-model object segmentation system improves flexibility over conventional systems. For example, the multi-model object segmentation system is not limited to object types witnessed during training. Rather, the multi-model object segmentation system openly segments all objects regardless of their classification type or whether the object has been witnessed during training. Indeed, the multi-model object segmentation system is able to segment objects across a large scope of object types and classes, even unknown classes. In this manner, the multi-model object segmentation system provides superior flexibility over conventional systems.

Moreover, in one or more implementations, the multi-model object segmentation system improves efficiency over conventional systems. For example, through generating and utilizing the disclosed multi-model object segmentation framework, the multi-model object segmentation system is able to improve segmentation of one or more objects within a digital image while skipping other object segmentation machine-learning models not relevant to the image. Further, in one or more implementations, the multi-model object segmentation system adds, replaces, and/or upgrades components within the framework with more efficient versions without having to modify or re-train other components of the multi-model object segmentation framework.

Further, in various implementations, the multi-model object segmentation system provides a graphical user interface that reduces the number of steps needed to select objects and partial objects within a digital image. For example, the multi-model object segmentation system enables a user to provide a selection request of a target object, and in response, the multi-model object segmentation system automatically selects the target object (i.e., provides a corresponding object mask or segmented object). In some implementations, the multi-model object segmentation system segments and then selects objects within digital images without requiring a tool selection. To illustrate, the multi-model object segmentation system facilitates the direct object selection and manipulation of any object within a digital image. Thus, unlike most conventional systems that require multiple tools and numerous manual operations to select an object, the multi-model object segmentation system facilitates accurate selection of an object with minimal user interaction (e.g., a click, mouse over, or hover).

Additionally, by preemptively segmenting all object (and optionally object parts), the multi-model object segmentation system is able to quickly return an object mask for any selected object or object part. In other works, the multi-model object segmentation system utilizes a pre-emptive segmentation for any subsequent object selection requests without having to reprocess the digital image. Thus, the object segmentation system both increases efficiency and reduces processing time.

Additional advantages and benefits of the multi-model object segmentation system will become apparent in view of the following description. Further, as illustrated by the foregoing discussion, the present disclosure utilizes a variety of terms to describe the features and advantages of the multi-model object segmentation system. Before describing the multi-model object segmentation system with reference to the figures below, additional detail is now provided regarding the meaning of such terms.

As used herein, the term “digital image” (or simply “image”) refers to a digital graphics file that when rendered displays one or more objects. In various implementations, images are made up of pixels that group together to form a visual representation of objects. Indeed, an image includes one or more objects associated with any suitable object type or object class. In various implementations, an image editing system displays an image on a computing device, such as a client device. In additional implementations, the image editing system enables a user to directly manipulate objects, such as move objects, duplicate objects, resize objects, and change object attributes (e.g., recolor objects).

The term “object,” as used herein, refers to a visual representation of a subject, concept, or sub-concept in an image. For instance, in various implementations, an object refers to a set of pixels in an image that combines to form a visual depiction of an item, article, partial item, component, or element. In some implementations, an object corresponds to a wide range of classes and concepts. For example, objects include specialty objects, conceptual objects, objects from known-classes, and unknown object classes (e.g., objects not used in training any of the object segmentation neural networks). In some implementations, an object includes multiple instances of the object.

In one or more implementations, an object includes sub-objects, parts, or portions (i.e., partial objects). For example, the face or leg of a person are objects that are part of another object (e.g., the body of a person). As another example, a shirt is an object that is part of another object (e.g., a person). In addition, in various implementations, the term “target object” refers to an object in a digital image that is being requested by the user for segmentation and selection by the multi-model object segmentation system.

As used herein, the terms “object mask” or “segmentation mask” or “object segmentation” refer to an indication of a plurality of pixels portraying an object (e.g., an unclassified object). For example, in one or more implementations, an object mask includes a coherent region of adjoining pixels. In some implementations, an object mask includes a segmentation boundary (e.g., a boundary line or curve indicating an edge of one or more objects) or a segmentation mask (e.g., a binary mask identifying pixels corresponding to an object). Generating an object mask is sometimes referred to as “selecting” a target object (i.e., identifying pixels that represent the target object).

As used herein, the term “approximate boundary” refers to an indication of an area including an object that is larger and/or less accurate than an object mask. In one or more implementations, an approximate boundary includes at least a portion of a detected object and portions of the image not comprising the detected object. In various implementations, an approximate boundary includes any shape, such as a square, rectangle, circle, oval, or other outline surrounding an object. In one or more implementations, an approximate boundary comprises a bounding box.

As mentioned above, in various implementations, the multi-model object segmentation system employs machine-learning models and various neural networks. The term “machine learning,” as used herein, refers to algorithms that model high-level abstractions in data by generating data-driven predictions or decisions from the known input data. Examples of machine-learning models include computer representations that are tunable (e.g., trainable) based on inputs to approximate unknown functions. For instance, a machine-learning model includes a model that utilizes algorithms to learn from, and make predictions on, known data by analyzing the known data to learn to generate outputs that reflect patterns and attributes of the known data. For example, machine-learning models include latent Dirichlet allocation (LDA), multi-arm bandits models, linear regression models, logistical regression models, random forest models, support vector machines (SVG) models, neural networks (convolutional neural networks, recurrent neural networks such as LSTMs, graph neural networks, etc.), or decision tree models.

As used herein, the term “neural network” refers to a machine learning model having interconnected artificial neurons that communicate and learn to approximate complex functions and generate outputs based on a plurality of inputs provided to the model. For instance, a neural network includes an algorithm (or set of algorithms) that implements deep learning techniques that utilize a set of algorithms to model high-level abstractions in data using training data to tune parameters of the neural network. Examples of neural networks include a convolutional neural network (CNN), residual learning neural network, recurrent neural network (RNN), generative adversarial neural network (GAN), and single-shot detection (SSD) networks.

Referring now to the figures, FIG. 1 illustrates a schematic diagram of a system environment 100 in which a multi-model object segmentation system 106 operates in accordance with one or more implementations. As shown in FIG. 1, the system environment 100 (or simply “environment 100”) includes a client device 102 and a server device 108 connected via a network 112. Additional detail regarding these computing devices (e.g., the client device 102 and the server device 108) is provided below in connection with FIG. 13. Further, FIG. 13 also provides additional detail regarding networks, such as the illustrated network 112.

As shown, the environment 100 includes the client device 102. In various implementations, the client device 102 is associated with a user (e.g., a user client device), such as a user that requests automatic selection of objects in a digital image. The client device 102 includes an image editing system 104 and a multi-model object segmentation system 106. In various implementations, the image editing system 104 implements the multi-model object segmentation system 106. In alternative implementations, the multi-model object segmentation system 106 is separate from the image editing system 104. While the image editing system 104 and the multi-model object segmentation system 106 are shown on the client device 102, in some implementations, the image editing system 104 and the multi-model object segmentation system 106 are located remotely from the client device 102 (e.g., on the server device 108), as further explained below.

The image editing system 104, in general, facilitates the creation, modification, sharing, and/or deletion of digital images. For instance, the image editing system 104 provides a variety of tools related to image creation and editing (e.g., photo-editing). To illustrate, the image editing system 104 provides selection tools, color correction tools, and image manipulation tools. Moreover, the image editing system 104 optionally operates in connection with one or more applications to generate or modify digital images. For example, in one or more implementations, the image editing system 104 operates in connection with digital design applications or other image editing applications.

As mentioned above, the image editing system 104 includes the multi-model object segmentation system 106. As described in detail below, the multi-model object segmentation system 106 automatically segments objects (including partial objects) in images. In particular, the multi-model object segmentation system utilizes a multi-model object segmentation framework (e.g., object segmentation pipeline) to automatically segment objects (which includes unclassified pixel clusters) in images with a high level of accuracy. For example, the multi-model object segmentation system utilizes multiple general and specialized object segmentation models to generate a combined object mask set that captures each object in an image. Then, in response to a user selection request with respect to a target object (or a target partial object), the multi-model object segmentation system utilizes a corresponding object mask to automatically select the target object (e.g., select the pixels segmented to the target object and/or deselect other pixels in the image).

As shown, the environment 100 also includes the server device 108. The server device 108 includes a multi-model object segmentation server system 110. For example, in one or more implementations, the multi-model object segmentation server system 110 represents and/or provides similar functionality as described herein in connection with the multi-model object segmentation system 106. In some implementations, the multi-model object segmentation server system 110 supports the multi-model object segmentation system 106 on the client device 102. Indeed, in one or more implementations, the server device 108 includes all, or a portion of, the multi-model object segmentation system 106. In particular, the multi-model object segmentation system 106 on the client device 102 downloads an application from the server device 108 (e.g., an image editing application from the multi-model object segmentation server system 110) or a portion of a software application.

In some implementations, the multi-model object segmentation server system 110 includes a web hosting application that allows the client device 102 to interact with content and services hosted on the server device 108. To illustrate, in one or more implementations, the multi-model object segmentation server system 110 implements the multi-model object segmentation framework, which includes various object segmentation machine-learning models. For example, the client device 102 (e.g., a mobile device) provides a digital image (e.g., via an image editing application) to the multi-model object segmentation server system 110 on the server device 108, which provides back an object mask of the target object and/or the combined object mask set for the digital image.

Although FIG. 1 illustrates a particular number, type, and arrangement of components within the environment 100, various additional environment configurations and arrangements are possible. For example, the environment 100 includes any number of client devices. As another example, the server device 108 represents a set of connected server devices. As a further example, the client device 102 may communicate directly with the server device 108, bypassing the network 112 or utilizing a separate and/or an additional network.

Turning to the next figure, FIG. 2 provides an overview of utilizing the multi-model object segmentation system 106 to automatically segment objects in a digital image and then provide a segmented object in response to a selection request. In particular, FIG. 2 illustrates a series of acts 200 of segmenting objects in a digital image for automatic selection in accordance with one or more implementations. For example, in various implementations, the multi-model object segmentation system 106 performs the series of acts 200 shown. In some implementations, an image editing system and/or image editing application performs one or more of the acts included in the series of acts 200.

As shown in FIG. 2, the series of acts 200 includes an act 202 of determining multiple object mask sets for a digital image. For instance, upon identifying an image to segment, the multi-model object segmentation system 106 begins processing the image within an object selection framework. For example, the multi-model object segmentation system 106 utilizes a first object segmentation model and a second object segmentation model (i.e., general object segmentation models) to each generate an object mask set of objects in the image. As shown in FIG. 2, each of the object segmentation models generates a separate object mask set. In some implementations, the multi-model object segmentation system 106 utilizes additional object segmentation models to generate additional object masks. Further detail regarding utilizing general object segmentation models to generate object mask sets is described below with respect to FIGS. 4A and 4B.

As shown, the series of acts 200 includes an act 204 of generating a combined object mask set that includes a merged object mask. For example, the multi-model object segmentation system 106 identifies one or more pairs of object masks in the different sets of object masks that overlap. For instance, as shown, both object mask sets include an object mask of an elephant. For each such object, the multi-model object segmentation system 106 then merges the pair of masks into a single object mask. In some implementations, the multi-model object segmentation system 106 first determines whether an overlap threshold is satisfied before merging an overlapping pair of object masks together.

In one or more implementations, the multi-model object segmentation system 106 generates a combined object mask set for the image. For example, the multi-model object segmentation system 106 includes each of the merged object mask set in the combined object mask set. The multi-model object segmentation system 106 also identifies and includes each non-overlapping object mask from the object mask sets. Accordingly, in various implementations, the multi-model object segmentation system 106 generates the combined object mask set as an initial object mask set for the image. Further detail regarding merging overlapping pairs of object masks and generating a combined object mask set is described below with respect to FIG. 5.

As shown, the series of acts 200 includes an optional act 206 of refining object masks utilizing specialist and/or partial-object segmentation models (e.g., specialized object segmentation models). As one example, in one or more implementations, the multi-model object segmentation system 106 determines that an object mask in the combined object mask set corresponds to a specialist object segmentation model. In these implementations, the multi-model object segmentation system 106 utilizes the specialist object segmentation model to refine the selection of the segmented object. Indeed, the multi-model object segmentation system 106 is able to employ multiple different specialist object segmentation models within the multi-model object segmentation framework to refine object masks within the combined object mask set. Additional detail regarding utilizing specialist object segmentation models is provided below with respect to FIG. 6.

As another example, in some implementations, the multi-model object segmentation system 106 determines that one or more object masks in the combined object mask set correspond to one or more partial-object segmentation models. For each of these objects, the multi-model object segmentation system 106 utilizes the corresponding partial-object segmentation model to determine object masks for partial objects within the object. For example, for the object of a body, the multi-model object segmentation system 106 utilizes a body parts segmentation model to segment sub-parts of the body. In various implementations, the multi-model object segmentation system 106 adds to the combined object mask set an associated a hierarchical relationship with the segmented object. Additional detail regarding utilizing partial-object segmentation models is provided below with respect to FIG. 7.

As shown, the series of acts 200 includes an optional act 208 of adding an unclassified object mask to the combined object mask set. In some instances, the multi-model object segmentation system 106 does not create an object mask for all pixels of an image. Accordingly, to enable user selection of all regions of the image, in various implementations, the multi-model object segmentation system 106 generates object masks for these pixel regions.

To illustrate, in one or more implementations, the multi-model object segmentation system 106 determines if a cluster of adjoining pixels that are not currently assigned to an object mask satisfy a minimal object mask threshold amount, and if so, the multi-model object segmentation system 106 creates an unclassified object mask for these pixels. As shown, FIG. 2 illustrates creating a new object mask of a pixel cluster on the bottom right of the image. The multi-model object segmentation system 106 then adds the unclassified object mask to the combined object mask set. Additional detail regarding generating unclassified object masks is provided below with respect to FIG. 8.

As shown, the series of acts 200 includes an act 210 of providing an object mask of a target object in response to an object selection request of the target object. In some implementations, the multi-model object segmentation system 106 matches the location of the selection request with an object mask in an image editing application to identify the object mask that covers the target object. In one or more implementations, the multi-model object segmentation system 106 determines that the location of the selection request corresponds to a partial object. In these implementations, the multi-model object segmentation system 106 additionally and/or alternatively selects the partial object utilizing an object mask generated for the corresponding partial object. As shown in FIG. 2, the multi-model object segmentation system 106 returns an object mask selecting the elephant in response to the user selection request. Additional examples of selecting target objects and target partial objects are described below with respect to FIGS. 10A-10D.

Turning now to FIGS. 3-9, additional detail is provided regarding the multi-model object segmentation system 106 generating and utilizing a multi-model object segmentation framework to automatically and accurately segment objects in a digital image. In particular, FIG. 3 illustrates a schematic diagram of a multi-model object segmentation framework 300 for automatically segmenting object masks for all objects in digital images in accordance with one or more implementations. FIGS. 4-9 illustrate expanded portions of the multi-model object segmentation framework 300.

As shown in FIG. 3, the multi-model object segmentation framework 300 includes multiple elements and/or components for segmenting objects in digital images. In particular, the multi-model object segmentation framework 300 includes elements and/or components for generating object masks for all objects in a digital image. Indeed, the multi-model object segmentation framework 300 provides the multi-model object segmentation system 106 with various paths for generating an accurate set of object masks as well as refining one or more object masks in the object mask set depending on what types of images are included in a digital image. For example, the elements and/or components of the multi-model object segmentation framework 300 include neural networks, machine-learning models, heuristic models, and/or functions. Further, the elements and/or components of the multi-model object segmentation framework 300 are interchangeable, removable, replaceable, and upgradable, as described below.

As illustrated, the multi-model object segmentation framework 300 begins with receiving an input image 302. In some implementations, the multi-model object segmentation system 106 obtains the input image (i.e., a digital image) from a client device. For example, the client device loads an image into an image editing application that includes the multi-model object segmentation system 106, as previously described. In general, the image includes one or more objects. For instance, the image includes background objects (i.e., scenery), foreground objects (i.e., image subjects), and/or other types of objects. In one or more implementations, the multi-model object segmentation system 106 obtains an image from another computing device or computing system.

As illustrated, the multi-model object segmentation framework 300 includes a first object segmentation model 304. In one or more implementations, the first object segmentation model 304 is a general object segmentation model that generates a first object mask set of objects in the input image 302. For example, the first object segmentation model 304 is an object segmentation machine-learning model trained to detect and classify objects corresponding to known object classes. Indeed, in various implementations, the first object segmentation model 304 is a quality-based object segmentation model that is highly accurate at classifying detected objects corresponding to a set of classes. In some implementations, however, the first object segmentation model 304 may detect fewer objects and semantic regions in the input image 302 than other object segmentation models. Further detail regarding utilizing the first object segmentation model 304 is described below with respect to FIG. 4A.

As illustrated, the multi-model object segmentation framework 300 includes a second object segmentation model 306. In one or more implementations, the second object segmentation model is a general object segmentation model that generates a second object mask set for the input image 302. For example, the second object segmentation model 306 is an object segmentation machine-learning model trained to segment semantic objects and instances of objects in a panoptic manner (e.g., identifies all foreground and background objects). In various implementations, the second object segmentation model 306 is a quantity-based object segmentation model that generally segments more objects in the input image 302 than other object segmentation models at the expense of segmenting objects in a less precise manner (e.g., masks include rough jagged lines and incorrect artifacts). Further detail regarding utilizing the second object segmentation model 306 is described below with respect to FIG. 4B.

In one or more implementations, the multi-model object segmentation framework 300 includes additional and/or different object segmentation models. For example, the multi-model object segmentation framework 300 includes more than two object segmentation models, where each model generates a set of object masks for the input image 302. Further, just as the first object segmentation model 304 and the second object segmentation model 306 use different approaches to segment objects in the input image 302, in various implementations, the additional object segmentation models employ similar or different approaches to segmenting objects in the input image 302.

As illustrated in FIG. 3, the multi-model object segmentation framework 300 includes the object mask overlap manager 308. In various implementations, the object mask overlap manager 308 detects overlap between the object mask sets. For example, in one or more implementations, the object mask overlap manager 308 utilizes classification labels and/or pixel comparisons to determine if object masks from the first and second object mask sets (and/or additional object mask sets) overlap with each other. In some implementations, the object mask overlap manager 308 merges the overlapping pair of object masks into a singled combined, merged, or modified object mask.

In additional implementations, the object mask overlap manager 308 generates a combined object mask set for the input image 302. For example, the object mask overlap manager 308 includes the merged object masks as well as non-overlapping object masks from the first and second (and/or additional) object segmentation models into a combined set of object masks for the input image 302. Further detail regarding the object mask overlap manager 308 merging overlapping pairs of object masks and generating a combined object mask set is described below with respect to FIG. 5.

As mentioned previously, the multi-model object segmentation framework 300 includes various specialized object segmentation models that refine and improve object masks in the combined object mask set. To illustrate, the multi-model object segmentation framework 300 includes one or more specialist object segmentation models 310. In general, specialist object segmentation models correspond to object segmentation models that are trained to segment a limited set of objects, but with much higher levels of precision and accuracy than general object segmentation models. While the specialist object segmentation models 310 are specialized to a smaller group of object classes, the multi-model object segmentation framework 300 may include any number of specialist object segmentation models 310.

Additionally, in various implementations, the multi-model object segmentation system 106 determines if objects in the input image 302 correspond to one of the specialist object segmentation models 310 (e.g., specialized object segmentation models). In these implementations, the multi-model object segmentation system 106 utilizes the corresponding specialist object segmentation models 310 to more precisely identify the object in the input image 302. In one or more implementations, the multi-model object segmentation system 106 updates the combined object mask set with the object mask generated by the specialist object segmentation models 310. Further detail regarding utilizing specialist object segmentation models is provided below with respect to FIG. 6.

As illustrated, the multi-model object segmentation framework 300 includes one or more partial-object segmentation models 312 (e.g., specialized object segmentation models). In many instances, an object is able to be broken down into sub-parts (i.e., partial objects). Accordingly, in various implementations, the multi-model object segmentation system 106 determines if a partial-object segmentation model 312 is able to further separate an object into more specific parts. If so, the multi-model object segmentation system 106 utilizes a partial-object segmentation model 312 to generate a subset of object masks that correspond to the objects and adds the subset to the combined object mask set.

As with the specialist object segmentation models 310, the multi-model object segmentation framework 300 may include numerous different partial-object segmentation models 312, each corresponding to different object types and classes. Further, in one or more implementations, the partial-object segmentation models 312 is associated with an object hierarchy manager, which manages permittable overlapping object masks when a hierarchical relationship exists. Additional detail regarding utilizing partial-object segmentation models is provided below with respect to FIG. 7.

As illustrated, the multi-model object segmentation system 106 may utilize the one or more specialist object segmentation models 310, the one or more partial-object segmentation models 312, or neither (shown as the dashed line). Indeed, the multi-model object segmentation system 106 determines whether further refinement is available based on the type of objects in the input image 302. When an object matches a specialized object segmentation model, the multi-model object segmentation system 106 utilizes the corresponding specialized object segmentation model to generate a more precise object mask of the object. In this manner, the multi-model object segmentation system 106 efficiently uses only the object segmentation models in the multi-model object segmentation framework 300 that improve the accuracy of the combined object mask set. Stated differently, the multi-model object segmentation system 106 does not waste computing resources by running one or more of the specialized object segmentation models that do not correspond to objects within the input image 302, and thus, yield no improved results.

As illustrated, the multi-model object segmentation framework 300 includes the unknown pixel region mask generator 314. In various implementations, the unknown pixel region mask generator 314 generates object masks for pixel clusters in the input image 302 that are otherwise unsegmented. In one or more implementations, the unknown pixel region mask generator 314 determines if a cluster of adjoining unclassified pixels satisfies a minimal object mask threshold amount. If the threshold is satisfied, in some implementations, the unknown pixel region mask generator 314 generates an unclassified object mask for the pixel cluster. Additional detail regarding generating unclassified object masks is provided below with respect to FIG. 8.

Additionally, as illustrated, the multi-model object segmentation framework 300 includes an object mask consistency verifier 316. In various implementations, the object mask consistency verifier 316 performs one or more actions that ensure accuracy and consistency in the combined object mask set. For example, in some implementations, the object mask consistency verifier 316 identifies and cures pixels in the input image 302 assigned to multiple object masks. In some implementations, the object mask consistency verifier 316 performs additional finishing actions, as described below. Additional detail regarding the object mask consistency verifier 316 is provided below with respect to FIG. 9.

In one or more implementations, the multi-model object segmentation system 106 flows through the operations of the multi-model object segmentation framework 300 as shown. In alternative implementations, the multi-model object segmentation system 106 performs many of the operations in parallel and/or in a different order. For example, the multi-model object segmentation system 106 determines the first and second object mask sets in parallel. Further, in some implementations, the multi-model object segmentation system 106 utilizes the object mask overlap manager 308, the specialist object segmentation model(s) 310, and/or the partial-object segmentation model(s) 312 in parallel. In various implementations, utilizing multiple components in parallel improves utilization efficiency on a host computing device and improves the overall efficiency of the system.

Lastly, as shown in FIG. 3, the multi-model object segmentation framework 300 outputs a segmented image 318. For example, in various implementations, the segmented image 318 includes the input image 302 joined with the combined object mask set. Indeed, the multi-model object segmentation system 106 generates the combined object mask set such that each object and region in the input image 302 is selectable with a corresponding object mask (e.g., the segmented image 318). Indeed, unlike conventional object segmentation systems, each object and region in the input image 302 is selectable. Further, unlike conventional object segmentation systems, the selections of each object and region in the input image 302 are highly accurate, refined, and precise.

Furthermore, the multi-model object segmentation system 106 optionally preemptively generates the segmented image 318. In this manner, the multi-model object segmentation system 106 is able to return an object mask in response to any selection request. More specifically, by preemptively segmenting all object (and optionally object parts), the multi-model object segmentation system 106 can quickly return an object mask for any selected object or object part. In other words, the multi-model object segmentation system 106 utilizes the pre-emptive segmentation for any subsequent object selection requests without having to reprocess the input image. Thus, the multi-model object segmentation system 106 both increases efficiency and reduces processing time.

Turning now to the next set of figures, FIGS. 4A-4B illustrate block diagrams of utilizing various object segmentation models utilized to generate object mask sets for a digital image in accordance with one or more implementations. In particular, FIG. 4A shows an implementation of the first object segmentation model 304 introduced above in the multi-model object segmentation framework 300. FIG. 4B shows an implementation of the second object segmentation model 306 from the multi-model object segmentation framework 300.

As illustrated, FIG. 4A includes the first object segmentation model 304 generating a classified object mask set 408 (i.e., the first object mask set) from an input image 302. In various implementations, the first object segmentation model 304 includes a machine-learning model, such as one or more machine-learning models described above. In further implementations, the first object segmentation model 304 includes a neural network. For example, as shown, the first object segmentation model 304 includes an object detection neural network 410 and an object mask generator neural network 418. In some implementations, the object mask generator neural network 418 is incorporated into the object detection neural network 410.

In one or more implementations, the multi-model object segmentation system 106 learns parameters for the object detection neural network 410 so the object detection neural network 410 will accurately detect objects corresponding to known object classes. For example, in various implementations, the multi-model object segmentation system 106 trains the object detection neural network 410 to recognize hundreds (or tens or thousands) of object classes. In some implementations, the object detection neural network 410 is a CNN (e.g., an R-CNN or a Faster R-CNN).

As shown, the object detection neural network 410 includes an encoder 412 and a decoder 416. In various implementations, the encoder 412 encodes the input image 302 into latent object classification feature vectors 414 (or simply “classification feature vectors” 414) that associates objects in the input image 302 with potential objects within multi-dimensional vector space. For example, in one or more implementations, the encoder 412 processes the input image 302 through various neural network layers (e.g., convolutional, ReLU, and/or pooling layers) to encode pixel data from the input image 302 into a classification feature vector 414 (e.g., a string of numbers in multi-dimensional vector space representing the encoded image data).

As shown, the object detection neural network 410 includes higher neural network layers that form a decoder 416. In one or more implementations, the higher neural network layers include fully connected layers. In various implementations, the decoder 416 processes the classification feature vectors 414 to generate bounding boxes and/or pixel segmentations for each detected object in an input image. For example, the decoder 416 generates the classified object mask set 408 from the classification feature vector 414 (e.g., using a SoftMax classifier) for each object in the input image 302.

As mentioned above, in some implementations, the object detection neural network 410 generates bounding boxes for each classified object in the input image 302. For example, the object detection neural network 410 creates an approximate boundary around each detected known object. Indeed, in various implementations, the object detection neural network 410 generates multiple bounding boxes that each indicate an object in the input image 302 that could correspond to an object.

Further, in example implementations, the object detection neural network 410 labels each of the known objects with an object class. For instance, the object detection neural network 410 tags each bounding box with a prediction of one or more known objects identified within the bounding box. In some implementations, the classification label includes known object segmentation confidence scores (e.g., prediction probability scores) for each of the object tags predicted for a boundary box. In some implementations, the object detection neural network 410 generates a list of detected known objects and their corresponding labels to indicate what objects have been detected in the image.

In various implementations, the object detection neural network 410 corresponds to one or more deep neural networks or models that detect objects of known object classes. For example, the object detection neural network 410 comprises one of the model or neural networks described in U.S. patent application Ser. No. 16/388,115, entitled “Robust Training of Large-Scale Object Detectors with Noisy Data,” filed on Apr. 8, 2019; U.S. patent application Ser. No. 16/518,880, entitled “Utilizing Multiple Object Segmentation Models To Automatically Select User-Requested Objects In Images,” filed on Jul. 22, 2019; or U.S. patent application Ser. No. 16/817,418, entitled “Utilizing A Large-Scale Object Detector To Automatically Select Objects In Digital Images,” filed on Mar. 20, 2020; the contents of each of which are incorporated herein by reference in their entirety.

As mentioned above, in various implementations, the object detection neural network 410 includes the object mask generator neural network 418. In one or more implementations, the object mask generator neural network 418 generates object masks based on the output of the object detection neural network 410. For example, in some implementations, the object detection neural network 410 provides bounding boxes of detected objects (as described above) to the object mask generator neural network 418, which generates the classified object mask set 408 for the input image 302.

In generating an object mask for a detected object, the object mask generator neural network 418 is able to segment the pixels in the detected query object from the other pixels in the image. For example, the object mask generator neural network 418 creates a separate image layer that sets the pixels corresponding to each detected object to positive (e.g., binary 1) while setting the remaining pixels in the image to a neutral or negative (e.g., binary 0). When an object mask layer for a target object is combined with the input image 302, only the pixels of the target object are visible. Indeed, the generated object mask facilitates the automatic selection of target objects within the input image 302.

In various implementations, the object mask generator neural network 418 corresponds to one or more deep neural networks or models that select an object based on bounding box parameters corresponding to the object within an image. For example, in one or more implementations, the object mask generator neural network 418 utilizes the techniques and approaches found in Ning Xu et al., “Deep GrabCut for Object Selection,” published Jul. 14, 2017, the entirety of which is incorporated herein by reference. As another example, the object mask neural network utilizes the techniques and approaches found in U.S. Patent Application Publication No. 2019/0130229, “Deep Salient Content Neural Networks for Efficient Digital Object Segmentation,” filed on Oct. 31, 2017; U.S. patent application Ser. No. 16/035,410, “Automatic Trimap Generation and Image Segmentation,” filed on Jul. 13, 2018; or U.S. Pat. No. 10,192,129, “Utilizing Interactive Deep Learning To Select Objects In Digital Visual Media,” filed Nov. 18, 2015, each of which is incorporated herein by reference in their entirety.

As illustrated, FIG. 4B includes the second object segmentation model 306 generating a panoptic object mask set 428 (i.e., the second object mask set) from an input image 302. In various implementations, the second object segmentation model 306 includes a machine-learning model, such as one or more machine-learning models described above. In further implementations, the second object segmentation model 306 includes a neural network. To illustrate, the first object segmentation model 304 includes a panoptic object segmentation neural network 420.

As with the object detection neural network 410, in various implementations, the multi-model object segmentation system 106 trains the panoptic object segmentation neural network 420 to generate the panoptic object mask set 428 from the input image 302. In alternative implementations, the multi-model object segmentation system 106 obtains a pre-trained object detection neural network 410 and/or panoptic object segmentation neural network 420. In any case, the multi-model object segmentation system 106 may further train the object detection neural network 410 and/or panoptic object segmentation neural network 420 as additional training data becomes available to further improve the accuracy of these models.

In general, the panoptic object segmentation neural network 420 attempts to segment each pixel in the input image 302 into an object mask (optionally with labels). Accordingly, the panoptic object segmentation neural network 420 is able to segment most if not all objects in an image. However, in some instances, while the number of segmented objects is high, the ability to accurately segment an object is lower, as described above.

As shown, the panoptic object segmentation neural network 420 includes an instance segmentation model 422. In various implementations, the instance segmentation model 422 segments quantifiably objects (e.g., “thing” objects) in digital images, such as cars, people, trees, sports equipment, and buildings. Indeed, the instance segmentation model 422 segments objects in the input image 302 that have instance-level classifications (e.g., labels). In one or more implementations, the instance segmentation model 422 utilizes a feature pyramid network architecture (e.g., FPN).

In some implementations, the semantic segmentation model 424 segments non-quantifiable objects (e.g., “stuff” objects) in digital images, such as road, sky, water, and ground. In these implementations, the semantic segmentation model 424 segments objects in the input image 302 that do not have instance-level classifications but rather semantic-level classifications. For example, in various implementations, the semantic segmentation model 424 classifies all people in an image as belonging to the same people classification (e.g., it does not separate each instance of a detected person). In one or more implementations, the semantic segmentation model 424 utilizes a convolutional neural network architecture (e.g., Mask R-CNN).

In many implementations, the panoptic object segmentation neural network 420 utilizes both the instance segmentation model 422 and the semantic segmentation model 424 to generate the panoptic object mask set 428. For example, the panoptic object segmentation neural network 420 unifies the segmentation schemes to generate object masks for each instance of an object. Accordingly, the panoptic object segmentation neural network 420 generates the panoptic object mask set 428 to include object masks for objects in the input image 302 along with corresponding object classifications. In various implementations, the panoptic object segmentation neural network 420 utilizes the techniques and approaches found in U.S. Patent Application Publication No. 2018/0108137, “Instance-Level Semantic Segmentation System,” filed on Oct. 18, 2016; or Alexander Kirillov et al., “Panoptic Feature Pyramid Networks,” in CVPR 2019, each of which is incorporated herein by reference in their entirety.

Turning now to FIG. 5, a block diagram of the object mask overlap manager 308 generating a combined object mask set for a digital image based on merging overlapping object masks in accordance with one or more implementations is illustrated. As shown, FIG. 5 includes the object mask overlap manager 308, the classified object mask set 408, the panoptic object mask set 428, and a combined object mask set 530. While FIG. 5 is described in terms of classified object mask set 408 and the panoptic object mask set 428, the actions in FIG. 5 apply to any two or more object mask sets.

In one or more implementations, upon generating the classified object mask set 408, the panoptic object mask set 428, and/or any additional initial object mask sets, the multi-model object segmentation system 106 refines the object mask sets to generate a combined and/or modified object mask set. For example, as shown in the multi-model object segmentation framework 300 above, the multi-model object segmentation system 106 provides the object mask sets to the object mask overlap manager 308 to begin refining the segmented objects in the input image 302.

As shown, the object mask overlap manager 308 includes a flowchart of various acts 502-512 that are performed by the multi-model object segmentation system 106. As illustrated in the object mask overlap manager 308, the multi-model object segmentation system 106 performs an act 502 of detecting an overlap between masks of the classified object mask set 408 and the panoptic object mask set 428. For example, in one or more implementations, the multi-model object segmentation system 106 compares (when available) classification labels between the two object mask sets to determine whether the two object mask sets segmented one or more of the same objects. For instance, the multi-model object segmentation system 106 determines that both object mask sets include a duplicate object mask with the classification label “boat.”

As shown in the object mask overlap manager 308, the multi-model object segmentation system 106 performs an act 504 of identifying overlapping pixels between overlapping object masks. For example, in various implementations, the multi-model object segmentation system 106 determines one or more pairs of overlapping object masks based on overlapping pixels. For instance, in one or more implementations, the multi-model object segmentation system 106 compares pixels in object masks of the classified object mask set 408 to each object mask in the panoptic object mask set 428 (or vice versa) to determine if pixel overlap exists. In some implementations, the multi-model object segmentation system 106 limits the comparison to object masks in the two object mask sets that include the same classification label (e.g., compares object mask set with the boat classification label).

In one or more implementations, the multi-model object segmentation system 106 determines locations of the classified object mask set 408 and the panoptic object mask set 428. When pixels of an object mask from one object mask set overlap with pixels of an object mask from the other object mask set, the multi-model object segmentation system 106 creates an overlapping object mask pair. For example, the multi-model object segmentation system 106 designates the object masks with the same pixel as an overlapping object mask pair.

As shown in the object mask overlap manager 308, the multi-model object segmentation system 106 performs an act 506 of determining if an overlapping object mask pair satisfies an overlap threshold amount. In various implementations, the multi-model object segmentation system 106 compares the location of all pixels in each object mask in the overlapping object mask pair to determine to what extent the object masks overlap. For example, the multi-model object segmentation system 106 determines whether one object mask overlaps with the paired object mask by an overlap threshold amount.

In one or more implementations, the overlap threshold amount corresponds to a ratio of a first number of pixels in one object mask to a second number of pixels in the second object mask. For example, the overlap threshold amount is satisfied when 50%, 80%, or 95% of pixels overlapping from one object mask overlaps with the paired object mask. For instance, if a first object mask is fully enclosed by the second paired object mask, then 100% of the pixels of the first object mask would overlap with the second object mask (while the second object mask has less than 100% of its pixels overlapping with the first object mask as it is larger). In some implementations, the overlap threshold amount is a fixed number of pixels (e.g., 100 or more pixels) or a percentage of the total number of pixels in the input image (e.g., 2% pixel overlap).

When the overlap threshold amount is not satisfied, the multi-model object segmentation system 106 may unpair the two overlapping object masks. To illustrate, as shown in the object mask overlap manager 308, when the determination is “no,” the multi-model object segmentation system 106 performs an act 508 of removing the overlapping pixels from the panoptic object mask. In alternative implementations, the multi-model object segmentation system 106 removes the overlapping pixels from the classification object mask.

In one or more implementations, when the overlap threshold amount is not satisfied, the multi-model object segmentation system 106 assigns the overlapping pixels to either the panoptic object mask or the classification object mask based on one or more factors. For instance, the multi-model object segmentation system 106 utilizes an algorithm that determines a correspondence score between the overlapping pixels and both the panoptic object mask and the classification object mask based on comparing pixel attributes (e.g., color and/or distance) of the overlapping pixels to pixels in each object mask. For example, the multi-model object segmentation system 106 assigns the overlapping pixels object mask with the higher correspondence score.

In another instance, the multi-model object segmentation system 106 assigns the overlapping pixels to either the panoptic object mask or the classification object mask based on a resulting edge efficiency metric. In one or more implementations, the multi-model object segmentation system 106 determines how adding the overlapping pixels (or a portion thereof) to each of the object masks affects the outer edge of the object mask, such whether adding the overlapping pixels would create a smooth edge or would jaggedly protrude. In these implementations, the multi-model object segmentation system 106 joins the overlapping pixel to the object mask that creates the smoother edge. In some implementations, the multi-model object segmentation system 106 splits the overlapping pixels if doing so would improve the edge efficiency of both the panoptic object mask and the classification object mask object masks. In various implementations, the multi-model object segmentation system 106 utilizes a combination of pixel attribute matching and edge efficiency to determine to which object mask to assign the overlapping pixels.

If, however, the multi-model object segmentation system 106 determines that the overlap threshold amount is satisfied, the multi-model object segmentation system 106 may combine the overlapping object mask pair. To illustrate, as shown in the object mask overlap manager 308, the multi-model object segmentation system 106 performs an act 510 of merging the overlapping object masks into a single object mask. In one or more implementations, the multi-model object segmentation system 106 merges the two object masks by adding the overlapping pixels as well as any non-overlapping pixels from both object masks into a single combined object mask.

In some implementations, the multi-model object segmentation system 106 removes the pixels from the object mask that has a lower amount of overlap. For example, the multi-model object segmentation system 106 modifies the object mask of the smaller overlapping object mask until the object mask set no longer shares overlapping pixels. In one or more implementations, the multi-model object segmentation system 106 addresses the issue of overlapping pixels at a later stage, as described below with respect to the object mask consistency verifier and FIG. 9.

To illustrate, FIG. 5 includes a classified object mask 520, a panoptic object mask 522, and a merged object mask 524. As shown, each of these object masks corresponds to the input image of a boat in the water and mountains in the background. In the top image, the classified object mask 520 covers the boat except for the bow (e.g., front). In the middle image, the panoptic object mask 522 covers the body of the boat but not the windshield portion (e.g., top). Accordingly, by merging the classified object mask 520 and the panoptic object mask 522, the multi-model object segmentation system 106 generates the merged object mask 524, which covers all portions of the boat.

In one or more implementations, the multi-model object segmentation system 106 merges the overlapping object masks into a single object mask by modifying one object mask with the other object mask in the overlapping pair. For example, the multi-model object segmentation system 106 identifies a set of non-overlapping pixels in the first object mask that is non-overlapping with the second object mask from the second set of object masks. The multi-model object segmentation system 106 then modifies the second object mask by adding the set of non-overlapping pixels from the first object mask to the pixels included in the second object mask. In these implementations, the multi-model object segmentation system 106 modifies a first object mask set by supplementing it with overlapping object masks for a second object mask set (or vice versa).

In some implementations, the object mask overlap manager 308 includes one or more additional actions. For instance, as shown in, the multi-model object segmentation system 106 performs an optional act 512 of refining the merged object mask utilizing an object mask generator neural network. For example, in one or more implementations, the multi-model object segmentation system 106 provides the merged object mask to the object mask generator neural network described above, which refines the segmentation of the detected object.

In various implementations, the object mask generator neural network adds missing portions of a detected object based on the merged object mask. For instance, while both object masks for an overlapping object mask pair do not fully segment an object in the input image, when combined, the merged object mask forms a better boundary approximation of the object. In these implementations, the object mask generator neural network utilizes the merged object mask to accurately detect the boundaries of the object by including pixels that were previously missing. Similarly, in some implementations, the object mask generator neural network removes artifacts included in the merged object mask. For example, if one of the object masks from the overlapping object mask pair includes pixels located outside of a detected object, the object mask generator neural network utilizes the approximate boundary of the merged object mask to accurately detect the boundaries of the object by removing these inaccurate pixels.

In various implementations, the multi-model object segmentation system 106 repeats the actions 502-512 of the object mask overlap manager 308 for each overlapping object mask pair. Indeed, in one or more implementations, the multi-model object segmentation system 106 merges, combines, and/or modifies object masks in the object mask sets to generate multiple merged object masks. The multi-model object segmentation system 106 may store the merged object masks in either the object mask set or a new object mask set. For example, in some implementations, the multi-model object segmentation system 106 replaces overlapping object masks in a first object mask set with the corresponding merged (e.g., modified) object masks.

As mentioned above, in several implementations, the multi-model object segmentation system 106 generates a new object mask set for the merged object masks. For example, the multi-model object segmentation system 106 generates a combined object mask set 530 that includes the merged object masks as well as any non-overlapping (or non-paired) object masks for the classified object mask set 408 and panoptic object mask set 428. In this manner, not only does the combined object mask set 530 include objects not segmented by one or more of the object segmentation models, in many implementations, the combined object mask set 530 includes highly accurate and refined object masks for many of the segmented objects in the input image (e.g., via the merged object mask set).

In one or more implementations, the multi-model object segmentation system 106 further refines one or more object mask sets in the combined object mask set 530. For example, for non-overlapping and/or unpaired object masks added from the panoptic object mask set 428, the multi-model object segmentation system 106 refines these object masks utilizing the object mask generator neural network. As described above, the object mask generator neural network often improves the segmentation of an object. Accordingly, in some implementations, the multi-model object segmentation system 106 processes each (or at least many) of the object masks in the combined object mask set 530 utilizing the object mask generator neural network at some point within the object mask overlapping manager 308.

FIG. 5 and the identified corresponding figures describe various embodiments of the object mask overlap manager 308. Accordingly, the actions and algorithms described in connection with FIG. 5 and previously identified figures (e.g., FIGS. 3, 4A, and 4B) provide example structure and architecture for performing a step for generating a set of object masks comprising an object mask for each of the plurality of objects in the digital image utilizing a plurality of competing object segmentation machine-learning models. Indeed, the description, block diagrams, and charts described in connection with FIGS. 3, 4A, 4B, and 5 provide structure for one or more of the algorithms corresponding to the multi-model object segmentation system 106 and the object mask overlap manager 308.

As described above, in various implementations, upon generating the combined object mask set 530, the multi-model object segmentation system 106 further refines one or more object masks within the combined object mask set 530. As mentioned above with respect to the multi-model object segmentation framework 300, the multi-model object segmentation system 106 may utilize one or more specialist object segmentation models 310 as well as one or more partial-object segmentation models 312 to refine an object mask. Accordingly, FIGS. 6-7 provide additional detail regarding these specialized object segmentation models.

To illustrate, FIG. 6 shows a block diagram of utilizing one or more specialist object segmentation models to refine object masks in accordance with one or more implementations. As shown, FIG. 6 includes the specialist object segmentation model 310, the input image 302, and the combined object mask set 530. Each of these components is introduced above.

In various implementations, the specialist object segmentation model 310 represents a specialist object segmentation neural network (or simply “specialist network”) that is trained to segment a particular object type or object class. Accordingly, a specialist network often generates the most accurate object mask possible for a particular type of object for which it is trained. Often, the number of specialist networks is limited; accordingly, the multi-model object segmentation system 106 is able to quickly determine whether an object mask is refinable by one of the specialist networks. Examples of specialist object segmentation neural networks include, but are not limited to, specialist networks that segment the sky, water, roads, bodies and skin, clothing, faces, or waterfalls. Additionally, while the specialist object segmentation model 310 is described in terms of a specialist object segmentation neural network, in alternative implementations, the specialist object segmentation model 310 corresponds to other types of machine-learning models.

As shown, the specialist object segmentation model 310 includes a flowchart of various acts 602-606 that the multi-model object segmentation system 106 performs. For example, as illustrated in the specialist object segmentation model 310, the multi-model object segmentation system 106 performs an act 602 of comparing labels from an object mask set to specialist object segmentation models to identify an object mask that matches a specialist model. For instance, in many implementations, the multi-model object segmentation system 106 compares the classification labels of the combined object mask set 530 to a specialist classification table or list, which indicates whether the object classification of an object corresponds to a specialist network.

In some implementations, if upon comparing classification labels of the combined object mask set 530 to the specialist networks, the multi-model object segmentation system 106 does not determine a match, the multi-model object segmentation system 106 skips utilizing a specialist network. In this manner, the multi-model object segmentation system 106 does not waste computing resources on the input image 302 attempting to segment an object that is not present. Indeed, the multi-model object segmentation system 106 improves efficiency by utilizing a specialist network only when invoking the specialist network will improve the accuracy of an object mask in the combined object mask set 530.

As shown in the specialist object segmentation model 310, the multi-model object segmentation system 106 performs an act 604 of refining the object mask. In some implementations, the multi-model object segmentation system 106 provides the input image 302 and the matching object mask of the object to the specialist object segmentation model 310 for refinement. In these implementations, the specialist object segmentation model 310 (e.g., the specialist network) utilizes these inputs to generate a refined object mask of the object. For example, if there exist multiple instances of the object, the specialist network utilizes the object mask to identify the particular instance to detect, segment, and update.

In various implementations, the multi-model object segmentation system 106 provides the input image 302 to the specialist network without additional input. In many instances, because the special network is trained to segment a particular class of objects, the specialist network is able to segment the object based on the input image 302. To illustrate, FIG. 6 shows an example image (e.g., an input image) on the right of a savanna with animals. Upon providing this input image to a sky specialist object segmentation neural network, the specialist network segments the sky in a specialized object mask 610.

As shown in the specialist object segmentation model 310, the multi-model object segmentation system 106 performs an act 606 of updating the object mask set with the refined object mask. For example, in one or more implementations, the multi-model object segmentation system 106 updates the combined object mask set 530 with the refined object mask (e.g., the specialized object mask 610). In some implementations, the multi-model object segmentation system 106 updates the combined object mask set 530 by replacing the object mask with the refined object mask. In some implementations, the multi-model object segmentation system 106 updates the combined object mask set 530 by merging the object mask with the refined object mask.

In various implementations, the multi-model object segmentation system 106 repeats the actions 602-606 for each object mask in the combined object mask set 530 that match with a specialist network. In this manner, for each segmented object in the input image 302 that corresponds to a specialist network, the multi-model object segmentation system 106 refines the object mask to the most accurate object mask possible.

As mentioned above, the multi-model object segmentation framework 300 includes any number of specialist networks. In various implementations, the multi-model object segmentation system 106 adds additional specialist networks to the multi-model object segmentation framework 300 as the need for additional specialist networks is identified. Similarly, in one or more implementations, the multi-model object segmentation system 106 replaces, updates, and/or modifies a specialist network in the multi-model object segmentation framework 300. In particular, the multi-model object segmentation system 106 is able to add, remove, or modify specialist networks to and from the multi-model object segmentation framework 300 without modifying, retraining, or reconfiguring other parts of the multi-model object segmentation framework 300.

As mentioned above, the multi-model object segmentation system 106 utilizes a specialist network to segment particular objects within an image in various implementations. As also mentioned, an example of a specialist network includes an object segmentation neural network trained to segment the sky within an image. For example, the multi-model object segmentation system 106 utilizes the techniques, approaches, and/or specialist networks described in “Utilizing Multiple Object Segmentation Models To Automatically Select User-Requested Objects In Images,” filed on Jul. 22, 2019; Yi-Hsuan Tsai et al., “Sky is Not the Limit: Semantic-Aware Sky Replacement,” ACM Transactions on Graphics (SIGGRAPH), 2016; or a U-net architecture and use techniques and approaches found in Olaf Ronneberger et al., “U-Net: Convolutional Networks for Biomedical Image Segmentation,” submitted on May 18, 2015, arXiv:1505.049597, each is which is incorporated herein by reference in its entirety.

As mentioned above, FIG. 7 shows a block diagram of utilizing one or more partial-object segmentation models to generate improved object masks for a digital image in accordance with one or more implementations. As shown, FIG. 7 includes the partial-object segmentation model 312, the input image 302, and the combined object mask set 530. Each of these components is introduced above.

In various implementations, partial-object segmentation models determine multiple object masks corresponding to a particular object. In some implementations, the partial-object segmentation model 312 includes a partial-object segmentation neural network (or simply “partial-object network”) trained to segment partial objects for a given object, which allows for more precise selection of portions of the object. Indeed, partial-object networks provide the multi-model object segmentation system 106 with a higher granularity when generating object masks for objects in a digital image. Examples of partial-object segmentation models include, but are not limited to, partial-object networks that generate segments within persons (e.g., a body parser), faces, cars, buildings, trees, clothes, or furniture.

As shown, the partial-object segmentation model 312 includes a flowchart of various acts 702-708 that are performed by the multi-model object segmentation system 106. For example, as illustrated in the partial-object segmentation model 312, the multi-model object segmentation system 106 performs an act 702 of comparing labels from an object mask set to partial-object segmentation models to identify an object mask that matches a partial-object segmentation model. For instance, in many implementations, the multi-model object segmentation system 106 compares the classification labels of the combined object mask set 530 to a table or list of partial-object segmentation models, which indicates whether the object classification of a detected object of an object mask corresponds to a partial-object network.

In some implementations, as with the specialist networks, if the multi-model object segmentation system 106 does not determine any matches between classification labels and partial-object segmentation networks, the multi-model object segmentation system 106 skips utilizing a partial-object segmentation model. In this manner, the multi-model object segmentation system 106 does not waste computing resources attempting to segment partial-objects that are not present in the input image 302. Indeed, the multi-model object segmentation system 106 improves efficiency by utilizing a partial-object segmentation model only when invoking the partial-object network will improve the accuracy of object mask selection in the combined object mask set 530.

For each object mask having a classification that matches the partial-object segmentation model 312, the multi-model object segmentation system 106 utilizes the partial-object segmentation model 312 to generate object masks for the partial-objects. For example, in one or more implementations, upon determining a match, the multi-model object segmentation system 106 provides the matching object mask and the input image 302 to the matching partial-object segmentation model 312. In this manner, the partial-object segmentation model 312 need not perform redundant work of locating the object in the input image 302 but rather, utilizes the matching object mask and the input image 302 to further segment the object, as described next. In alternative implementations, the multi-model object segmentation system 106 provides the input image 302 to the partial-object segmentation model 312, which at least segments the partial objects within corresponding objects.

As shown in the partial-object segmentation model 312, the multi-model object segmentation system 106 performs an act 704 of generating partial-object masks for the object. For example, in one or more implementations, the multi-model object segmentation system 106 utilizes the partial-object segmentation model 312 to segment partial objects within the object in the input image 302. To illustrate, FIG. 7 shows partial-object masks 710 of a person where each part of the person is classified (e.g., labeled) utilizing the partial-object segmentation model 312.

In various implementations, the partial-object segmentation model 312 is trained and executes similar to the object segmentation neural network described above. In these implementations, the partial-object segmentation model 312 is trained in a supervisory manner with a targeted dataset that corresponds to partial objects. For example, the multi-model object segmentation system 106 trains or otherwise obtains an object segmentation neural network that segments different body parts in body objects. In some implementations, the partial-object segmentation model 312 is modified (e.g., the architecture includes additional and/or different neural network layers) to better segment particular partial objects. In one or more implementations, the partial-object segmentation model 312 comprises one of the models described by Wang et al. in Joint Object and Part Segmentation using Deep Learned Potentials, In Proc. International Conference on Computer Vision (ICCV), 2015; or J. Dong et al. in Towards Unified Human Parsing And Pose Estimation, In CVPR, pages 843-850, 2014; the entire contents of each of which are hereby incorporated by reference.

As shown in the partial-object segmentation model 312, the multi-model object segmentation system 106 performs an act 706 of identifying an object mask hierarchy between the partial-object masks and the object mask. In various implementations, the multi-model object segmentation system 106 adds or modifies a hierarchy attribute to the newly generated partial-object masks and the object mask to indicate a relationship. For example, the multi-model object segmentation system 106 indicates that the object mask is a parent (e.g., encompasses) of the partial-object masks. In some implementations, the multi-model object segmentation system 106 modifies the classification label of partial objects to indicate a hierarchal relationship (e.g., labels of “arm-person” or “head-person” within the object of “person”). Indeed, the multi-model object segmentation system 106 utilizes the knowledge of the partial-object segmentation model 312 to generate child nodes (e.g., partial-object masks) for the object mask.

In example implementations, the multi-model object segmentation system 106 indicates multiple hierarchy levels. For example, the multi-model object segmentation system 106 generates partial-object masks for an object in the input image 302. Further, the multi-model object segmentation system 106 generates partial-object masks for partial-objects. To illustrate, the multi-model object segmentation system 106 utilizes a human body parser model to segment parts of a person, which includes a segmented face. The multi-model object segmentation system 106 then utilizes a portrait segmentation model to segment facial features from the segmented face (which creates a three-level hierarchy structure).

In some implementations, the multi-model object segmentation system 106 determines other object mask hierarchies in the combined object mask set 530 (and/or between the first object mask set and the second object mask set). For example, in one or more implementations, the multi-model object segmentation system 106 compares pixels to identify a smaller object mask that is encompassed by a larger object mask. In some instances, the smaller object mask is at least 80%, 90%, or another hierarchal threshold amount encompassed by the larger object mask. In these implementations, the multi-model object segmentation system 106 assigns a parent-child hierarchy to the object mask pair, where the smaller object mask is assigned as a child of the larger object mask (e.g., the segmented object).

In one or more implementations, the multi-model object segmentation system 106 utilizes classification labels to determine a hierarchal relationship between two segmented objects. For example, if an image includes a first object mask has the classification label of “shirt” and a second object mask has the classification label of “shirt-pocket,” then the multi-model object segmentation system 106 may determine that the segmented shirt pocket is a partial object of the shirt. In some implementations, the multi-model object segmentation system 106 utilizes one or more lists of tables that include objects and corresponding partial objects to determine whether a hierarchal relationship exists.

In example implementations, the multi-model object segmentation system 106 determines the object mask hierarchy of object masks separate from the partial-object segmentation model 312. For example, the multi-model object segmentation system 106 utilizes an object mask hierarchy manager within the multi-model object segmentation framework 300 and apart from the partial-object segmentation model 312. For instance, when generating the combined object mask set 530 from the multiple object mask sets, the object mask hierarchy manager determines hierarchal relationships between object masks by grouping any overlapping object masks that meet the hierarchal threshold amount into a hierarchal (e.g., parent-child) pair.

As shown in the specialist object segmentation model 310, the multi-model object segmentation system 106 performs an act 708 of adding the partial-object masks to the object mask set. For example, in one or more implementations, the multi-model object segmentation system 106 updates the combined object mask set 530 by associating the partial-object masks with the segmented object. In this manner, the updated combined object mask set enables the selection of the segmented object using the object mask or the selection of smaller portions of the segmented object using a partial-object mask.

As mentioned above, the multi-model object segmentation framework 300 includes the unknown pixel region mask generator 314. FIG. 8 illustrates a block diagram of generating unclassified object masks for a digital image utilizing the unknown pixel region mask generator 314 in accordance with one or more implementations. As shown, FIG. 8 includes the unknown pixel region mask generator 314, the input image 302, and the combined object mask set 530.

In various implementations, the unknown pixel region mask generator 314 generates additional object masks for the input image 302. More specifically, the unknown pixel region mask generator 314 generates one or more object masks for pixels of the input image 302 not included in the combined object mask set. Often, the multi-model object segmentation system 106 performs the actions associated with the unknown pixel region mask generator 314 near the end of the multi-model object segmentation framework 300, when other object masks have been modified or refined. For instance, because the multi-model object segmentation system 106 is not running additional object segmentation models, pixels not assigned to an object mask will not otherwise be assigned. Further, through refining or modifying an object mask utilizing a specialist object segmentation model or partial-object segmentation model, various pixels previously assigned to an object mask are now unassigned or left unlabeled.

As shown, the unknown pixel region mask generator 314 includes a flowchart of various acts 802-812 that the multi-model object segmentation system 106 performs. For example, as illustrated in the unknown pixel region mask generator 314, the multi-model object segmentation system 106 performs an act 802 of detecting a pixel in the input image that is unclassified. In one or more implementations, the multi-model object segmentation system 106 overlays the object mask set in the combined object mask set 530 to identify one or more pixels that do not have an object classification label (e.g., are not assigned to an object mask). In some instances, the multi-model object segmentation system 106 utilizes a table or mapping to look up which pixels are not assigned to an object mask (e.g., a list of unclassified pixels).

As shown, the unknown pixel region mask generator 314 includes the multi-model object segmentation system 106 performing an act 804 of clustering the pixel with adjoining pixels that are also unclassified. For example, in one or more implementations, the multi-model object segmentation system 106 identifies pixels connected (e.g., next to, touching, or within a threshold distance) to the unclassified pixel that is also unclassified. The multi-model object segmentation system 106 continues to identify other adjoining pixels that are unclassified. In various implementations, the multi-model object segmentation system clusters or groups the unclassified pixels together.

As shown, the unknown pixel region mask generator 314 includes the multi-model object segmentation system 106 performing an act 806 of determining if the pixel cluster satisfies a minimum object mask threshold amount. For example, in one or more implementations, the multi-model object segmentation system 106 compares the size of the pixel cluster to a minimum object mask threshold amount to determine whether the pixel cluster is sufficiently large. In one or more implementations, the minimum object mask threshold amount is a number of pixels (e.g., 10, 50, 100 pixels). In some implementations, the minimum object mask threshold amount is a percentage of total pixels in the input image, such as 0.01% 0.5%, 1.0%, or 2% of the input image size. In example implementations, the minimum object mask threshold amount varies based on the input image size.

If the pixel cluster does not satisfy the minimum object mask threshold amount, in one or more implementations, the multi-model object segmentation system 106 dismisses the pixel group, as shown in the act 808. For example, the multi-model object segmentation system 106 ignores the pixel cluster as trivial or as insignificant.

In some implementations, the multi-model object segmentation system 106 joins the pixel cluster to an adjacent object mask, as also shown in the act 808. For instance, the multi-model object segmentation system 106 adds pixels in a pixel cluster to an adjacent object mask based on correlating pixel colors. In one or more implementations, the multi-model object segmentation system 106 assigns different pixels to different object masks based on proximity and/or color. In various implementations, the multi-model object segmentation system 106 assigns a pixel to an adjacent object mask by classifying the pixel with the same classification as the object mask. In example implementations, the multi-model object segmentation system 106 utilizes a connected component algorithm to detect the adjacent classified object mask to which an unclassified pixel may be connected.

If the multi-model object segmentation system 106 determines that the pixel cluster satisfies the minimum object mask threshold amount (e.g., the act 806), the multi-model object segmentation system 106 performs the act 810 of generating a new unclassified object mask of the pixel cluster. For example, in one or more implementations, the multi-model object segmentation system 106 segments the pixel cluster into a new unclassified object mask. In additional implementations, the multi-model object segmentation system 106 classifies the object mask with a label of “unknown,” “unclassified,” “background,” “null,” or “no label” In some implementations, the multi-model object segmentation system 106 assigns a classification label based on the color of the pixel cluster, a numbering scheme, and/or the size of the pixel cluster. In some implementations, the multi-model object segmentation system 106 provides the pixel cluster to an object detection neural network to determine the most likely object class.

Lastly, as shown, the unknown pixel region mask generator 314 includes the multi-model object segmentation system 106 performing an act 812 of adding the new unclassified object mask to the combined object mask set 530. For example, in various implementations, the multi-model object segmentation system 106 includes the new unclassified object mask among the refined object masks. Accordingly, if a user selects the region in the input image 302 corresponding to the new unclassified object mask, the multi-model object segmentation system 106 utilizes the new unclassified object mask to automatically select the region.

In various implementations, the multi-model object segmentation system 106 repeats the acts 802-812 for all unclassified pixels in the input image 302. As a result, the combined object mask set more fully covers all regions of the input image 302 where a user may select. Indeed, because all regions in the input image 302 correspond to at least one object mask, the multi-model object segmentation system 106 is able to automatically select any region where a user may submit a submission request including regions without classified objects.

FIG. 8 and the identified corresponding figures describe various embodiments of the unknown pixel region mask generator 314. Accordingly, the actions and algorithms described in connection with FIG. 8 and previously identified figures (e.g., FIG. 3) provide example structure and architecture for performing a step for generating one or more additional object masks for unknown pixel regions in the digital image. Indeed, the description, block diagrams, and charts described in connection with FIGS. 3 and 8 provide structure for one or more of the algorithms corresponding to the multi-model object segmentation system 106 and the unknown pixel region mask generator 314.

As mentioned above, the multi-model object segmentation framework 300 includes the object mask consistency verifier 316. FIG. 9 illustrates a block diagram of utilizing the object mask consistency verifier 316 to verify the consistency of an object mask set for a digital image in accordance with one or more implementations. As shown, FIG. 9 includes the object mask consistency verifier 316 and the combined object mask set 530.

In various implementations, the object mask consistency verifier 316 performs various checks and refinements to an object mask set (e.g., the combined object mask set 530). As an example, the multi-model object segmentation system 106 utilizes the object mask consistency verifier 316 to verify that the number of pixels in the combined object mask set 530 for a hierarchy level does not exceed the number of pixels in the input image. Indeed, because the multi-model object segmentation framework 300 includes different models, operations, and functions (including many that may operate in parallel), the object mask consistency verifier 316 ensures accuracy and consistency across the combined object mask set. In this manner, the multi-model object segmentation system 106 protects against possible errors that could occur when automatically selecting a target object in response to a selection request.

As illustrated in FIG. 9, the object mask consistency verifier 316 includes a flowchart of various acts 902-912 that the multi-model object segmentation system 106 performs. For example, as illustrated in the object mask consistency verifier 316, the multi-model object segmentation system 106 performs an act 902 of detecting that a pixel in the input image is included in multiple object masks within the combined object mask set 530. In various implementations, a model may include a pixel to more than one object mask. To illustrate, a pixel in a digital image of a roadway with cars may be 60% car and 40% road (e.g., the pixel has matting that reflects multiple objects). However, the pixel is assigned as “road” in a first object mask and as “car” in a second object mask, which causes the pixel to be double assigned (e.g., double counted). Further, the use of multiple object segmentation models in the multi-model object segmentation framework 300 compounds the problem of assigning the same pixel to different objects and/or object classifications.

As shown in the object mask consistency verifier 316, the multi-model object segmentation system 106 performs an act 904 of determining whether the object masks share the same mask hierarchy. In implementations where the partial-object segmentation model generates partial-object masks within an object mask, pixels in the sub-objects will overlap with the pixels in the parent object. Accordingly, the multi-model object segmentation system 106 determines if the pixel assigned to multiple object masks are part of a parent-child hierarchal relationship. If so, the multi-model object segmentation system 106 performs an act 906 of checking other pixels for object mask overlap, as shown in the object mask consistency verifier 316.

If, however, the object masks belong to the same object hierarchy, the multi-model object segmentation system 106 performs an act 908 of determining a correspondence between the pixel and each of the object masks, as shown in the object mask consistency verifier 316. For example, in one or more implementations, the multi-model object segmentation system 106 compares color, distance, saturation, sharpness, and/or opacity between the pixel and pixels in each of the object masks to determine a correspondence score for each object mask.

In some implementations, the multi-model object segmentation system 106 utilizes a multi-label graph cut function to determine correspondence scores for the object masks. For example, in one or more implementations, a multi-label graph cut function determines a penalty of assigning the pixel to each of the object masks. Based on the penalties (e.g., costs), the multi-model object segmentation system 106 generates a correspondence score for the pixel to each object mask.

In various implementations, the multi-model object segmentation system 106 utilizes a label prediction neural network to assign to determine correspondence scores for the object masks. For example, the label prediction neural network receives each object mask and their corresponding label along with the pixel and determines (e.g., utilizing a SoftMax classifier) correspondences score for the pixel to each object mask. In some implementations, the multi-model object segmentation system 106 trains the label prediction neural network. In alternative implementations, the multi-model object segmentation system 106 obtains a trained label prediction neural network.

As shown in the object mask consistency verifier 316, the multi-model object segmentation system 106 performs an act 910 of assigning the pixel to one of the object masks based on the correspondences. For instance, in one or more implementations, the multi-model object segmentation system 106 assigns the pixel to the object mask to which the pixel shares the highest correspondence score. In particular, the multi-model object segmentation system 106 classifies the pixels with the same classification label as the higher corresponding object mask. Indeed, in various implementations, the multi-model object segmentation system 106 adds the pixel to the higher corresponding object mask.

As shown in the object mask consistency verifier 316, the multi-model object segmentation system 106 performs an act 912 of removing the pixel from the other object masks in the combined object mask set 530. For example, in various implementations, the multi-model object segmentation system 106 removes the pixel for the other overlapping object masks by removing the classification label of the pixel or deleting the pixel for the object mask (e.g., changing the value of the pixel from 1 to 0 or vice versa). In this manner, the multi-model object segmentation system 106 ensures that the pixel is assigned to only one object mask within the same hierarchy level of the combined object mask set 530.

Turning now to FIGS. 10A-10D, various graphical examples of the multi-model object segmentation system 106 automatically selecting a target object or a partial target object in an input image are described. For instance, FIGS. 10A-10D illustrate a graphical user interface for automatically selecting an object or partial object in accordance with one or more implementations.

As shown, FIGS. 10A-10D illustrate a client device 1000 having a graphical user interface 1002 that includes an image 1004 (i.e., a digital image or input image). In various implementations, the client device 1000 represents the client device 102 introduced above with respect to FIG. 1. As illustrated, the client device 1000 includes an image editing application that implements the image editing system 104, which utilizes the multi-model object segmentation system 106. Also, in some implementations, the multi-model object segmentation system 106, or optionally the image editing application, generates the graphical user interface 1002 in FIGS. 10A-10D.

In various implementations, the image editing application facilitates user interaction with the image 1004. For example, the image editing application and/or the multi-model object segmentation system 106 provides a selection tool (e.g., an automatic object selection tool or a magic object selection tool) that enables the user to provide an object selection request. In some implementations, the default mode of the image editing application is a pointer that automatically selects an object when the pointer comes into contact with it (e.g., this constitutes an object selection request in some implementations). Indeed, in response to detecting an object selection request with respect to a target object, the multi-model object segmentation system 106 automatically selects the target object.

To further illustrate, FIG. 10A shows a pointer 1006 (e.g., a mouse) that is controlled by a user on the client device 1000. Using the pointer 1006, the user selects a target object. For instance, the user hovers, clicks, or holds down the pointer 1006 on a target object. While FIGS. 10A-10D include a pointer 1006, the image editing application and/or multi-model object segmentation system 106 is able to detect other forms of user input, such as touch selection, touch pressure, or touch gestures on the client device 1000 or from input of another device paired to the client device 1000.

In response to detecting the selection request based on the user interaction, in one or more implementations, the multi-model object segmentation system 106 automatically selects the target object. For example, the multi-model object segmentation system 106 provides the image 1004 to the multi-model object segmentation framework 300, as described above, to generate a combined object mask set for the image 1004. Then, in response to detecting the selection request of a target object, in various implementations, the multi-model object segmentation system 106 utilizes the location of the pointer 1006 to identify the object mask in the combined object mask set that corresponds to the target object. Further, the multi-model object segmentation system 106 utilizes the identified object mask to select the target object.

To illustrate, FIG. 10B shows the multi-model object segmentation system 106 automatically selecting the person 1010 (e.g., the runner) in response to detecting the selection request while unselecting the remaining image portion 1008. In addition to automatically selecting the target object, in various implementations, the multi-model object segmentation system 106 provides the classification label 1012 for display within the graphical user interface 1002, as shown.

In one or more implementations, the multi-model object segmentation system 106 enables the selection of all objects in the image 1004, including background and unclassified objects. For example, by utilizing multiple object segmentation models on the image 1004, the multi-model object segmentation system 106 segments all semantic regions in the image. Further, by utilizing the unknown pixel region mask generator, the multi-model object segmentation system 106 generates object masks for any remaining pixel regions not otherwise segmented.

In many implementations, the multi-model object segmentation system 106 determines the combined object mask set for the image 1004 before segmenting a selection request. For instance, the multi-model object segmentation system 106 processes the image 1004 upon it being loaded to the image editing application to generate the combined object mask set. In these implementations, the multi-model object segmentation system 106 is able to quickly provide the object mask corresponding to the target request. For example, as the user moves, hovers over, or clicks different target objects, the multi-model object segmentation system 106 is able to quickly update the image 1004 to select, emphasize, or highlight corresponding objects. Indeed, the multi-model object segmentation system 106 is able to quickly and efficiently provide highly-accurate object masks for every object in the image 1004.

In some implementations, rather than generating the combined object mask set before receiving the selection request, the multi-model object segmentation system 106 pauses at one or more stages along with the multi-model object segmentation framework 300. For example, the multi-model object segmentation system 106 generates multiple sets of masks for the image 1004 but does not perform the merging action until the selection request is detected. For instance, utilizing the location of the selection request, the multi-model object segmentation system 106 determines whether pixel overlap occurs at that location, and/or if the object mask(s) at that location correspond to additional refinement object segmentation models, as described above. In these implementations, the multi-model object segmentation system 106 may perform real-time and on-demand object segmentation of the image 1004.

As mentioned above, in addition to automatically selecting objects in an image, the multi-model object segmentation system 106 is capable of automatically selecting partial objects. To elaborate, in one or more implementations, upon receiving an additional selection request, the multi-model object segmentation system 106 automatically selects a target partial object. For example, the multi-model object segmentation system 106 detects a second click of a previously selected target object or detects hovering the pointer 1006 over the target object beyond a time threshold (e.g., 2 seconds). In some implementations, the multi-model object segmentation system 106 detects different selection methods indicating a selection request of a partial target object, such as detecting a modifier keyboard key pressed in combination with a mouse click. For example, on a touchscreen client device, the multi-model object segmentation system 106 detects different pressure amounts or selection duration.

In response to detecting the selection request of a partial target object (e.g., an additional selection request), the multi-model object segmentation system 106 automatically selects the target partial object. For example, the multi-model object segmentation system 106 provides the image 1004 to a partial-object segmentation model within the multi-model object segmentation framework 300 to generate partial-object masks for the image 1004, which are included in the combined object mask set, as described above. The multi-model object segmentation system 106 then utilizes the pointer 1006 to identify and automatically select the corresponding partial-object mask of the target partial object within the image 1004.

In some implementations, the multi-model object segmentation system 106 provides multiple labels for displays if the pointer 1006 corresponds to multiple object masks, and in particular, object masks at the same location having different hierarchy levels. To illustrate, FIG. 10C shows the selection request described above. However, because the pointer 1006 corresponds to multiple object mask set at the same location, the multi-model object segmentation system 106 displays multiple classification labels 1012.

As shown, the multiple classification labels 1012 indicate that the selection request corresponds to the person, the arm of the person, or the hand of the person (which is part of the arm). In response to detecting a selection of one of the labels, the multi-model object segmentation system 106 selects the requested target object. To illustrate, in response to the selection request specifying to select the arm of the person (e.g., selecting the “arm” label from the multiple classification labels 1012 or providing multiple pointer clicks to cycle through the labels), the multi-model object segmentation system 106 automatically selects the arm while isolating out the other pixels in the image 1004, as shown.

In various implementations, the multi-model object segmentation system 106 shows multiple object masks corresponding to the location of the pointer 1006 and/or a selection request together within the image 1004. For example, the multi-model object segmentation system 106 shows a first color selecting the person. The multi-model object segmentation system 106 then adds a second color over the arm, where the first and color mix (or not). Further, the multi-model object segmentation system 106 then adds a third color over the hand. In some implementations, the multi-model object segmentation system 106 utilizes line dashes and/or line brightness to indicate a partial object that is selectable within an object. In one implementation, the multi-model object segmentation system 106 changes the icon of the pointer 1006 to indicate when a partial object is available for automatic selection.

In some implementations, the multi-model object segmentation system 106 provides a selection interface of each corresponding object or partial object instance corresponding to the location of the pointer 1006 and/or a selection request. To illustrate, FIG. 10D shows a segmented objects selection interface 1020 that includes each object or partial object associated with the location of the pointer 1006. For example, in response to detecting the selection request, the multi-model object segmentation system 106 determines that multiple objects and/or partial objects are located at or near the location of the pointer 1006. Accordingly, the multi-model object segmentation system 106 generates and displays each of the objects available to be automatically selected. As shown, the segmented objects selection interface 1020 includes the person 1010, the arm 1014, and the hand 1016. Based on the user interacting with the segmented objects selection interface 1020, the multi-model object segmentation system 106 automatically selects the indicated object or partial object within the image 1004.

Referring now to FIG. 11, additional detail is provided regarding the capabilities and components of the multi-model object segmentation system 106 in accordance with one or more implementations. In particular, FIG. 11 shows a schematic diagram of an example architecture of the multi-model object segmentation system 106 implemented within the image editing system 104 and hosted on a computing device 1100.

As shown, the multi-model object segmentation system 106 is located on a computing device 1100 within an image editing system 104. In general, the computing device 1100 may represent various types of client devices. For example, in some implementations, the client is a mobile device, such as a laptop, a tablet, a mobile telephone, a smartphone, etc. In other implementations, the computing device 1100 is a non-mobile device, such as a desktop or server, or another type of client device. Additional details with regard to the computing device 1100 are discussed below as well as with respect to FIG. 11.

As illustrated in FIG. 11, the multi-model object segmentation system 106 includes various components for performing the processes and features described herein. For example, the multi-model object segmentation system 106 includes a digital image manager 1110, a user input manager 1112, an object segmentation model manager 1114, an object mask overlap manager 308, an unknown pixel region mask generator 314, an object mask consistency verifier 316, and a storage manager 1122. As shown, the storage manager 1122 includes digital images 1124, object segmentation models 1126, and object mask sets 1138. Each of the components mentioned above is described below in turn.

As mentioned above, the multi-model object segmentation system 106 includes the digital image manager 1110. In general, the digital image manager 1110 facilitates identifying, accessing, receiving, obtaining, generating, importing, exporting, copying, modifying, removing, and organizing images. In one or more implementations, the digital image manager 1110 operates in connection with an image editing system 104 (e.g., an image editing application) to access and edit images, as described previously. In some implementations, the digital image manager 1110 communicates with the storage manager 1122 to store and retrieve the digital images 1124, for example, within a digital image database managed by the storage manager 1122.

As shown, the multi-model object segmentation system 106 includes the user input manager 1112. In various implementations, the user input manager 1112 is configured to detect, receive, and/or facilitate user input on the computing device 1100. In some instances, the user input manager 1112 detects one or more user interactions (e.g., a single interaction, or a combination of interactions) with respect to a digital image in a graphical user interface. For example, the user input manager 1112 detects a user interaction from a keyboard, mouse, touchpad, touchscreen, and/or any other input device in connection with the computing device 1100. For instance, the user input manager 1112 detects user input with respect to a selection request of a target object or partial object within an input image, as described above.

As shown, the multi-model object segmentation system 106 includes the object segmentation model manager 1114. In various embodiments, the object segmentation model manager 1114 maintains, creates, generates, trains, updates, accesses, and/or utilizes the object segmentation models disclosed herein. As described above, the object segmentation model manager 1114 segments one or more objects within an image (e.g., an input image) by generating a refined object mask set of objects within the image. For example, the object segmentation model manager 1114 generates a combined or modified object mask set, as described above.

In several embodiments, the object segmentation model manager 1114 communicates with the storage manager 1122 to store, access, and utilize the object segmentation models 1126. In various embodiments, the object segmentation models 1126 include one or more object detection models 1128, panoptic object segmentation models 1130, specialist object segmentation models 1132 (e.g., a sky segmentation neural network, a face segmentation neural network, a body segmentation neural network, or a skin segmentation neural network), partial-object segmentation models 1134, and object mask generator models 1136, each of which is described above in detail.

As shown, the multi-model object segmentation system 106 includes the object mask overlap manager 308. In one or more implementations, the object mask overlap manager 308 generates an object mask set 1138 for an input image, such as a combined object mask set and/or a modified object mask set. As described above, in various implementations, the object mask overlap manager 308 combines merged object masks as well as non-overlapping object masks from multiple object segmentation models into a combined set of object masks for an input image.

As shown, the multi-model object segmentation system 106 includes the unknown pixel region mask generator 314. In various implementations, the unknown pixel region mask generator 314 generates object masks for clusters of pixels in an input image that are otherwise unsegmented. In one or more implementations, the unknown pixel region mask generator 314 determines if a cluster of adjoining unclassified pixels satisfies a minimal object mask threshold amount, and, if so, generates an unclassified object mask for the pixel cluster, as described above.

As shown, the multi-model object segmentation system 106 includes the object mask consistency verifier 316. In various implementations, the object mask consistency verifier 316 authenticates the accuracy and consistency of a combined object mask set. For example, in some implementations, the object mask consistency verifier 316 identifies and corrects pixels in an input image that are assigned to multiple object masks, as described above.

Each of the components of the multi-model object segmentation system 106 optionally includes software, hardware, or both. For example, the components optionally include one or more instructions stored on a computer-readable storage medium and executable by processors of one or more computing devices, such as a client device (e.g., a mobile client device) or server device. When executed by one or more processors, the computer-executable instructions of the multi-model object segmentation system 106 causes a computing device to perform the feature learning methods described herein. Alternatively, the components optionally include hardware, such as a special-purpose processing device to perform a certain function or group of functions. In addition, the components of the multi-model object segmentation system 106 optionally include a combination of computer-executable instructions and hardware.

Furthermore, the components of the multi-model object segmentation system 106 may be implemented as one or more operating systems, as one or more stand-alone applications, as one or more modules of an application, as one or more plug-ins, as one or more library functions or functions that may be called by other applications, and/or as a cloud-computing model. Thus, the components may be implemented as a stand-alone application, such as a desktop or mobile application. Additionally, the components may be implemented as one or more web-based applications hosted on a remote server. The components may also be implemented in a suite of mobile device applications or “apps.” To illustrate, the components may be implemented in an application, including but not limited to ADOBE PHOTOSHOP, ADOBE CREATIVE CLOUD, LIGHTROOM, PHOTOSHOP ELEMENTS, PHOTOSHOP EXPRESS, PHOTOSHOP MOBILE, or other digital content applications software packages. The foregoing are either registered trademarks or trademarks of Adobe Inc. in the United States and/or other countries.

FIGS. 1-11, the corresponding text, and the examples provide several different methods, systems, devices, and non-transitory computer-readable media of the multi-model object segmentation system 106. In addition to the foregoing, one or more implementations are described in terms of flowcharts comprising acts for accomplishing a particular result, such as the flowcharts of acts shown in FIG. 12. Additionally, the acts described herein may be repeated or performed in parallel with one another or parallel with different instances of the same or similar acts.

As mentioned, FIG. 12 illustrates a flowchart of a series of acts in accordance with one or more implementations. While FIG. 12 illustrates acts according to one implementation, alternative implementations may omit, add to, reorder, and/or modify any of the acts shown. The acts of FIG. 12 are optionally performed as part of a method. Alternatively, a non-transitory computer-readable medium comprises instructions that, when executed by one or more processors, cause a computing device to perform the acts of FIG. 12. In some implementations, a system is configured to perform the acts of FIG. 12.

To illustrate, FIG. 12 shows a flowchart of a series of acts 1200 of utilizing multiple object segmentation models to automatically select objects in digital images in accordance with one or more implementations. In various implementations, the series of acts 1200 is implemented on one or more computing devices, such as the client device 102, the server device 108, the client device 1000, or the computing device 1100. In addition, in some implementations, the series of acts 1200 is implemented in a digital environment for creating or editing digital content (e.g., digital images). For example, the series of acts 1200 is implemented on one or more computing devices (e.g., server devices) having memory (or memory devices) that includes objects within a plurality of digital images having multiple objects.

The series of acts 1200 includes an act 1210 of generating a first and second set of object masks for a digital image. For instance, the act 1210 includes generating a first set of object masks for a digital image including a plurality of objects utilizing a first object segmentation machine-learning model and generating a second set of object masks for the digital image utilizing a second object segmentation machine-learning model. In one or more implementations, the act 1210 includes generating the first set of object masks for the digital image utilizing a first object segmentation neural network that segments known object classes within the digital image and generating the second set of object masks for the digital image utilizing a second object segmentation neural network that segments semantic objects within the digital image.

In example implementations, the act 1210 includes generating the first set of object masks and the second set of object masks for the digital image utilizing a first object segmentation neural network to segment a first number of objects in the digital image and a second object segmentation neural network to segment a second number of objects in the digital image, where the second number differs from the first number, and where the first and second object segmentation neural networks segment some of the same objects in the digital image.

As shown, the series of acts 1200 also includes an act 1220 of detecting an overlap between the first set of object masks and the second set of object masks. For instance, the act 1220 involves detecting an overlap between a first object mask from the first set of object masks and a second object mask from the second set of object masks. In one or more implementations, the act 1220 includes detecting the overlap by determining that a first set of pixels included in the first object mask overlaps a second set of pixels included in the second object mask by at least a pixel overlap threshold amount. In some implementations, the act 1220 includes matching object classification labels associated with the first object mask and the second object mask.

As shown in FIG. 12, the series of acts 1200 further includes an act 1230 of merging the overlapping object masks to generate a combined object mask. For instance, the act 1230 includes merging the overlapping first and second object masks to generate a combined object mask for the digital image. In one or more implementations, the act 1230 includes modifying the first set of object masks based on the second set of object masks to generate a modified set of object masks.

In various implementations, the act 1230 includes combining the overlapping first and second object masks by identifying a set of non-overlapping pixels in the first object mask from the first set of object masks that is non-overlapping with the second object mask from the second set of object masks and generating the combined object mask by adding the set of non-overlapping pixels to the pixels included in the second object mask.

As shown, the series of acts 1200 also includes an act 1240 of generating a third set of object masks with the combined object mask and non-overlapping object masks. For instance, the act 1240 includes generating a third set of object masks for the digital image that includes the combined object mask and non-overlapping object masks from the first set of object masks and the second set of object masks. In one or more implementations, the act 1240 includes modifying the first set of object masks by detecting a plurality of adjoining pixels in the digital image that does not correspond to the first set of object masks and the second set of object masks, generating a new object mask including the plurality of adjoining pixels, and adding the new object mask to the modified set of object masks (e.g., the combined object mask set). In example implementations, the act 1240 includes modifying the first set of object masks based on the second set of object masks by refining one or more object masks in the first set of object masks with one or more overlapping object masks from the second set of object masks.

In some implementations, the act 1240 also includes generating the new object mask including the plurality of adjoining pixels based on determining that the plurality of adjoining pixels satisfies a minimum object mask threshold amount with respect to a total number of pixels in the digital image. In various implementations, the act 1240 includes generating an unknown classification label for the new object mask including the plurality of adjoining pixels.

As shown, the series of acts 1200 includes an act 1250 of providing an object mask of the target object based on detecting a selection request of the target object. For instance, the act 1250 includes providing an object mask of the target object from the third set of object masks for the digital image based on detecting a selection request of a target object in the digital image. In one or more implementations, the act 1250 includes detecting a selection request of a target object in the digital image. Further, in some implementations, the act 1250 includes utilizing an object mask from the modified set of object masks corresponding to a target object to select the target object.

The series of acts 1200 optionally includes additional acts. For example, in one or more implementations, the series of acts 1200 includes an act of refining the combined object mask by utilizing an object mask machine-learning model to improve segmentation of a corresponding object in the digital image. In some implementations, the series of acts 1200 includes an act of classifying each segmented object in the digital image corresponding to the first set of object masks. In various implementations, the series of acts 1200 also includes acts of determining that an object mask of a third set of object masks corresponds to a specialist object segmentation neural network based on a classification label assigned to the object mask; providing the object mask and the digital image to the specialist object segmentation neural network to generate an updated object mask based on the determination; and replacing the object mask in the third set of object masks with the updated object mask.

In various implementations, the series of acts 1200 includes acts of determining that an object mask of the third set of object masks corresponds to a partial-object segmentation neural network based on a classification label assigned to the object mask of the segmented/target object; providing the object mask and the digital image to the partial-object segmentation neural network to generate a plurality of partial-object masks within the object mask based on the determination; and updating the third set of object masks to add the plurality of partial-object masks as sub-masks within the object mask. In example implementations, the series of acts 1200 also includes acts of identifying an object mask hierarchy between the plurality of partial-object masks and the object mask; determining that the selection request of the target object in the digital image corresponds to the object mask and a partial-object mask of the plurality of partial-object masks; and indicating that the object mask and the partial-object mask correspond to the target object in response to detecting the selection request of the target object in the digital image.

In some implementations, the series of acts 1200 includes acts of verifying object mask consistency of the modified set of object masks by determining that a pixel in the digital image is assigned to multiple object masks in the modified set of object masks having the same hierarchy level, determining a correspondence between the pixel and each of the object masks of the multiple object masks based on the determination, and assigning the pixel to the object mask of the multiple object masks having a greater, higher, greatest, largest, or highest correspondence while unassigning the pixel from other object masks of the multiple object masks.

In various implementations, the series of acts 1200 includes an act of generating a refined object mask for one or more object masks in the set of object masks utilizing one or more of a plurality of object segmentation machine-learning models including a specialist object segmentation machine-learning model and a partial-object segmentation machine-learning model. In additional implementations, the series of acts 1200 includes an act of refining multiple object masks in the set of object masks simultaneously utilizing the plurality of object segmentation machine-learning models.

The term “digital environment,” as used herein, generally refers to an environment implemented, for example, as a stand-alone application (e.g., a personal computer or mobile application running on a computing device), as an element of an application, as a plug-in for an application, as a library function or functions, as a computing device, and/or as a cloud-computing system. A digital medium environment allows the multi-model object segmentation system to automatically select objects and partial objects on digital images as described herein.

Implementations of the present disclosure may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Implementations within the scope of the present disclosure also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. In particular, one or more of the processes described herein may be implemented at least in part as instructions embodied in a non-transitory computer-readable medium and executable by one or more computing devices (e.g., any of the media content access devices described herein). In general, a processor (e.g., a microprocessor) receives instructions, from a non-transitory computer-readable medium, (e.g., memory), and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein.

Computer-readable media is any available media accessible by a general-purpose or special-purpose computer system. Computer-readable media that store computer-executable instructions are non-transitory computer-readable storage media (devices). Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, implementations of the disclosure comprise at least two distinctly different kinds of computer-readable media: non-transitory computer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM, ROM, EEPROM, CD-ROM, solid-state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which stores desired program code in the form of computer-executable instructions or data structures and which is accessible by a general-purpose or special-purpose computer.

A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media includes a network and/or data links for carrying desired program code in the form of computer-executable instructions or data structures and which is accessible by a general-purpose or special-purpose computer. Combinations of the above should also be included within the scope of computer-readable media.

Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures is transferred automatically from transmission media to non-transitory computer-readable storage media (devices) (or vice versa). For example, computer-executable instructions or data structures received over a network or data link is buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media (devices) at a computer system. Thus, it should be understood that non-transitory computer-readable storage media (devices) optionally is included in computer system components that also (or even primarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions and data which, when executed by a processor, cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. In some implementations, computer-executable instructions are executed by a general-purpose computer to turn the general-purpose computer into a special purpose computer implementing elements of the disclosure. The computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.

Those skilled in the art will appreciate that the disclosure may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like. The disclosure may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.

Implementations of the present disclosure optionally are implemented in cloud computing environments. As used herein, the term “cloud computing” refers to a model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing optionally is utilized in the marketplace to offer ubiquitous and convenient on-demand access to the shared pool of configurable computing resources. The shared pool of configurable computing resources is rapidly provisioned via virtualization and released with low management effort or service provider interaction, and then scaled accordingly.

A cloud-computing model optionally is composed of various characteristics such as, for example, on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud-computing model optionally implements various service models, such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computing model is deployable using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth. In addition, as used herein, the term “cloud-computing environment” refers to an environment in which cloud computing is utilized.

FIG. 13 illustrates a block diagram of a computing device 1300 that may be configured to perform one or more of the processes described above. One will appreciate that one or more computing devices, such as the computing device 1300 may represent the computing devices described above (e.g., the client device 102, the server device 108, the client device 1000, or the computing device 1100). In one or more implementations, the computing device 1300 may be a mobile device (e.g., a laptop, a tablet, a smartphone, a mobile telephone, a camera, a tracker, a watch, a wearable device, etc.). In some implementations, the computing device 1300 may be a non-mobile device (e.g., a desktop computer, a server device, a web server, a file server, a social networking system, a program server, an application store, or a content provider). Further, the computing device 1300 may be a server device that includes cloud-based processing and storage capabilities.

As shown in FIG. 13, the computing device 1300 includes one or more processor(s) 1302, memory 1304, a storage device 1306, I/O interfaces 1308 (i.e., input/output interfaces), and a communication interface 1310, which may be communicatively coupled by way of a communication infrastructure (e.g., bus 1312). While the computing device 1300 is shown in FIG. 13, the components illustrated in FIG. 13 are not intended to be limiting. Additional or alternative components may be used in other implementations. Furthermore, in certain implementations, the computing device 1300 includes fewer components than those shown in FIG. 13. Components of the computing device 1300 shown in FIG. 13 will now be described in additional detail.

In particular implementations, the processor(s) 1302 includes hardware for executing instructions, such as those making up a computer program. As an example, and not by way of limitation, to execute instructions, the processor(s) 1302 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 1304, or a storage device 1306 and decode and execute them.

The computing device 1300 includes memory 1304, which is coupled to the processor(s) 1302. The memory 1304 may be used for storing data, metadata, and programs for execution by the processor(s). The memory 1304 may include one or more volatile and/or non-volatile memories, such as Random-Access Memory (“RAM”), Read-Only Memory (“ROM”), a solid-state disk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of data storage. The memory 1304 may be internal or distributed memory.

The computing device 1300 includes a storage device 1306 includes storage for storing data or instructions. As an example, and not by way of limitation, the storage device 1306 includes a non-transitory storage medium described above. The storage device 1306 may include a hard disk drive (HDD), flash memory, a Universal Serial Bus (USB) drive, or a combination of these or other storage devices.

As shown, the computing device 1300 includes one or more I/O interfaces 1308, which are provided to allow a user to provide input to (e.g., user strokes), receive output from, and otherwise transfer data to and from the computing device 1300. These I/O interfaces 1308 may include a mouse, keypad, or a keyboard, a touch screen, camera, optical scanner, network interface, modem, another known I/O device, or a combination of these I/O interfaces 1308. The touch screen may be activated with a stylus or a finger.

The I/O interfaces 1308 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain implementations, I/O interfaces 1308 are configured to provide graphical data to a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and/or any other graphical content as may serve a particular implementation.

The computing device 1300 further includes a communication interface 1310. The communication interface 1310 includes hardware, software, or both. The communication interface 1310 provides one or more interfaces for communication (such as, for example, packet-based communication) between the computing device and one or more other computing devices or one or more networks. As an example, and not by way of limitation, communication interface 1310 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI. The computing device 1300 further includes a bus 1312. The bus 1312 includes hardware, software, or both that connects components of computing device 1300.

In the foregoing specification, the invention has been described regarding specific example implementations thereof. Various implementations and aspects of the invention(s) are described regarding details discussed herein, and the accompanying drawings illustrate the various implementations. The description above and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various implementations of the present invention.

The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described implementations are to be considered in all respects only as illustrative and not restrictive. For example, the methods described herein may be performed with fewer or more steps/acts or the steps/acts may be performed in differing orders. Additionally, the steps/acts described herein may be repeated or performed in parallel to one another or parallel to different instances of the same or similar steps/acts. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

What is claimed is:
 1. A non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause a computing device to: generate a first set of object masks for a digital image comprising a plurality of objects utilizing a first object segmentation model; generate a second set of object masks for the digital image utilizing a second object segmentation model; detect an overlap between a first object mask from the first set of object masks and a second object mask from the second set of object masks; merge the overlapping first and second object masks to generate a combined object mask for the digital image; generate a third set of object masks for the digital image that comprises the combined object mask and non-overlapping object masks from one or more of the first set of object masks or the second set of object masks; and based on detecting a selection request of a target object in the digital image, provide an object mask of the target object from the third set of object masks for the digital image.
 2. The non-transitory computer-readable medium of claim 1, further comprising instructions that, when executed by at least one processor, cause the computing device to detect the overlap between the first object mask and the second object mask by determining that a first set of pixels included in the first object mask overlaps a second set of pixels included in the second object mask by at least a pixel overlap threshold amount.
 3. The non-transitory computer-readable medium of claim 2, further comprising instructions that, when executed by at least one processor, cause the computing device to detect the overlap between the first object mask from the first set of object masks and the second object mask from the second set of object masks by matching object classification labels associated with the first object mask and the second object mask.
 4. The non-transitory computer-readable medium of claim 1, further comprising instructions that, when executed by at least one processor, cause the computing device to combine the overlapping first and second object masks by: identifying a set of non-overlapping pixels in the first object mask from the first set of object masks that is non-overlapping with the second object mask from the second set of object masks; and generating the combined object mask by adding the set of non-overlapping pixels to the pixels included in the second object mask.
 5. The non-transitory computer-readable medium of claim 1, further comprising instructions that, when executed by at least one processor, cause the computing device to refine the combined object mask by utilizing an object mask machine-learning model to improve segmentation of a corresponding object in the digital image.
 6. The non-transitory computer-readable medium of claim 1, further comprising instructions that, when executed by at least one processor, cause the computing device to: generate the first set of object masks for the digital image utilizing a first object segmentation neural network that segments known object classes within the digital image; and generate the second set of object masks for the digital image utilizing a second object segmentation neural network that segments semantic objects within the digital image.
 7. The non-transitory computer-readable medium of claim 1, further comprising instructions that, when executed by at least one processor, cause the computing device to classify each segmented object in the digital image corresponding to the first set of object masks.
 8. The non-transitory computer-readable medium of claim 7, further comprising instructions that, when executed by at least one processor, cause the computing device to: determine that an object mask of the third set of object masks corresponds to a specialist object segmentation neural network based on a classification label assigned to the object mask; based on the determination, provide the object mask and the digital image to the specialist object segmentation neural network to generate an updated object mask; and replace the object mask in the third set of object masks with the updated object mask.
 9. The non-transitory computer-readable medium of claim 7, further comprising instructions that, when executed by at least one processor, cause the computing device to: determine that an object mask of the third set of object masks corresponds to a partial-object segmentation neural network based on a classification label assigned to the object mask; based on the determination, provide the object mask and the digital image to the partial-object segmentation neural network to generate a plurality of partial-object masks within the object mask; and update the third set of object masks to add the plurality of partial-object masks as sub-masks within the object mask.
 10. The non-transitory computer-readable medium of claim 9, further comprising instructions that, when executed by at least one processor, cause the computing device to: identify an object mask hierarchy between the plurality of partial-object masks and the object mask; determine that the selection request of the target object in the digital image corresponds to the object mask and a partial-object mask of the plurality of partial-object masks; and in response to detecting the selection request of the target object in the digital image, indicate that the object mask and the partial-object mask correspond to the target object.
 11. A system comprising: a memory device comprising a digital image comprising a plurality of objects; at least one processor configured to cause the system to: generate a first set of object masks for the digital image; generate a second set of object masks for the digital image; modify the first set of object masks based on the second set of object masks to generate a modified set of object masks; detect a selection request of a target object in the digital image; and in response to the selection request, utilize an object mask from the modified set of object masks corresponding to the target object to select the target object.
 12. The system of claim 11, wherein the at least one processor is further configured to cause the system to modify the first set of object masks by: detecting a plurality of adjoining pixels in the digital image that does not correspond to the first set of object masks and the second set of object masks; generating a new object mask comprising the plurality of adjoining pixels; and adding the new object mask to the modified set of object masks.
 13. The system of claim 12, wherein the at least one processor is further configured to cause the system to generate the new object mask comprising the plurality of adjoining pixels based on determining that the plurality of adjoining pixels satisfies a minimum object mask threshold amount with respect to a total number of pixels in the digital image.
 14. The system of claim 12, wherein the at least one processor is further configured to cause the system to generate an unknown classification label for the new object mask comprising the plurality of adjoining pixels.
 15. The system of claim 11, wherein the at least one processor is further configured to cause the system to modify the first set of object masks based on the second set of object masks by refining one or more object masks in the first set of object masks with one or more overlapping object masks from the second set of object masks.
 16. The system of claim 11, wherein the at least one processor is further configured to cause the system to generate the first set of object masks and the second set of object masks for the digital image utilizing: a first object segmentation neural network to segment a first number of objects in the digital image; and a second object segmentation neural network to segment a second number of objects in the digital image, wherein the second number differs from the first number, and wherein the first and second object segmentation neural networks segment one or more same objects in the digital image.
 17. The system of claim 11, wherein the at least one processor is further configured to cause the system to verify object mask consistency of the modified set of object masks by: determining that a pixel in the digital image is assigned to multiple object masks in the modified set of object masks having a same hierarchy level; based on the determination, determining a correspondence between the pixel and each of the object masks of the multiple object masks; and assigning the pixel to the object mask of the multiple object masks having a highest correspondence while unassigning the pixel from other object masks of the multiple object masks.
 18. In a digital medium environment for creating or editing digital images, a computer-implemented method of selecting query objects, comprising: identifying a digital image that comprises a plurality of objects; a step for generating a set of object masks comprising an object mask for each of the plurality of objects in the digital image utilizing a plurality of competing object segmentation models; a step for generating one or more additional object masks for unknown pixel regions in the digital image; detecting a selection request of a target object in the digital image; and based on detecting the selection request of a target object, providing an object mask from a combined set of object masks comprising the set of object masks and the one or more additional object masks.
 19. The computer-implemented method of claim 18, further comprising generating a refined object mask for one or more object masks in the set of object masks utilizing one or more of a specialist object segmentation machine-learning model and a partial-object segmentation machine-learning model.
 20. The computer-implemented method of claim 19, further comprising refining multiple object masks in the set of object masks simultaneously utilizing the plurality of object segmentation machine-learning models. 